@balena/pinejs 15.0.0-true-boolean-7896b116c446d891d7a0d5e4085c02a13bc9c725 → 15.0.1-build-migrations-clarify-marking-sbvr-optional-d6d0ded8eccc6eadb2492f4697918cf0afd00215-1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. package/.dockerignore +4 -0
  2. package/.github/workflows/flowzone.yml +21 -0
  3. package/.husky/pre-commit +4 -0
  4. package/.pinejs-cache.json +1 -0
  5. package/.resinci.yml +1 -0
  6. package/.versionbot/CHANGELOG.yml +9678 -2002
  7. package/CHANGELOG.md +2976 -2
  8. package/Dockerfile +14 -0
  9. package/Gruntfile.ts +3 -6
  10. package/README.md +10 -1
  11. package/VERSION +1 -0
  12. package/build/browser.ts +1 -1
  13. package/build/config.ts +0 -1
  14. package/docker-compose.npm-test.yml +11 -0
  15. package/docs/AdvancedUsage.md +77 -63
  16. package/docs/GettingStarted.md +90 -41
  17. package/docs/Migrations.md +102 -1
  18. package/docs/ProjectConfig.md +12 -21
  19. package/docs/Testing.md +7 -0
  20. package/out/bin/abstract-sql-compiler.js +17 -17
  21. package/out/bin/abstract-sql-compiler.js.map +1 -1
  22. package/out/bin/odata-compiler.js +23 -20
  23. package/out/bin/odata-compiler.js.map +1 -1
  24. package/out/bin/sbvr-compiler.js +22 -22
  25. package/out/bin/sbvr-compiler.js.map +1 -1
  26. package/out/bin/utils.d.ts +2 -2
  27. package/out/bin/utils.js +3 -3
  28. package/out/bin/utils.js.map +1 -1
  29. package/out/config-loader/config-loader.d.ts +9 -8
  30. package/out/config-loader/config-loader.js +135 -78
  31. package/out/config-loader/config-loader.js.map +1 -1
  32. package/out/config-loader/env.d.ts +41 -16
  33. package/out/config-loader/env.js +46 -2
  34. package/out/config-loader/env.js.map +1 -1
  35. package/out/data-server/sbvr-server.d.ts +2 -19
  36. package/out/data-server/sbvr-server.js +44 -38
  37. package/out/data-server/sbvr-server.js.map +1 -1
  38. package/out/database-layer/db.d.ts +32 -14
  39. package/out/database-layer/db.js +120 -41
  40. package/out/database-layer/db.js.map +1 -1
  41. package/out/express-emulator/express.js +10 -11
  42. package/out/express-emulator/express.js.map +1 -1
  43. package/out/http-transactions/transactions.d.ts +2 -18
  44. package/out/http-transactions/transactions.js +29 -21
  45. package/out/http-transactions/transactions.js.map +1 -1
  46. package/out/migrator/async.d.ts +7 -0
  47. package/out/migrator/async.js +168 -0
  48. package/out/migrator/async.js.map +1 -0
  49. package/out/migrator/migrations.sbvr +43 -0
  50. package/out/migrator/sync.d.ts +9 -0
  51. package/out/migrator/sync.js +106 -0
  52. package/out/migrator/sync.js.map +1 -0
  53. package/out/migrator/utils.d.ts +78 -0
  54. package/out/migrator/utils.js +283 -0
  55. package/out/migrator/utils.js.map +1 -0
  56. package/out/odata-metadata/odata-metadata-generator.js +10 -13
  57. package/out/odata-metadata/odata-metadata-generator.js.map +1 -1
  58. package/out/passport-pinejs/passport-pinejs.d.ts +1 -1
  59. package/out/passport-pinejs/passport-pinejs.js +8 -7
  60. package/out/passport-pinejs/passport-pinejs.js.map +1 -1
  61. package/out/pinejs-session-store/pinejs-session-store.d.ts +1 -1
  62. package/out/pinejs-session-store/pinejs-session-store.js +20 -6
  63. package/out/pinejs-session-store/pinejs-session-store.js.map +1 -1
  64. package/out/sbvr-api/abstract-sql.d.ts +3 -2
  65. package/out/sbvr-api/abstract-sql.js +9 -9
  66. package/out/sbvr-api/abstract-sql.js.map +1 -1
  67. package/out/sbvr-api/cached-compile.js +1 -1
  68. package/out/sbvr-api/cached-compile.js.map +1 -1
  69. package/out/sbvr-api/common-types.d.ts +6 -5
  70. package/out/sbvr-api/control-flow.d.ts +8 -1
  71. package/out/sbvr-api/control-flow.js +36 -9
  72. package/out/sbvr-api/control-flow.js.map +1 -1
  73. package/out/sbvr-api/errors.d.ts +47 -40
  74. package/out/sbvr-api/errors.js +78 -77
  75. package/out/sbvr-api/errors.js.map +1 -1
  76. package/out/sbvr-api/express-extension.d.ts +4 -0
  77. package/out/sbvr-api/hooks.d.ts +16 -15
  78. package/out/sbvr-api/hooks.js +74 -48
  79. package/out/sbvr-api/hooks.js.map +1 -1
  80. package/out/sbvr-api/odata-response.d.ts +2 -2
  81. package/out/sbvr-api/odata-response.js +28 -30
  82. package/out/sbvr-api/odata-response.js.map +1 -1
  83. package/out/sbvr-api/permissions.d.ts +17 -16
  84. package/out/sbvr-api/permissions.js +369 -304
  85. package/out/sbvr-api/permissions.js.map +1 -1
  86. package/out/sbvr-api/sbvr-utils.d.ts +33 -15
  87. package/out/sbvr-api/sbvr-utils.js +397 -235
  88. package/out/sbvr-api/sbvr-utils.js.map +1 -1
  89. package/out/sbvr-api/translations.d.ts +6 -0
  90. package/out/sbvr-api/translations.js +150 -0
  91. package/out/sbvr-api/translations.js.map +1 -0
  92. package/out/sbvr-api/uri-parser.d.ts +23 -17
  93. package/out/sbvr-api/uri-parser.js +33 -27
  94. package/out/sbvr-api/uri-parser.js.map +1 -1
  95. package/out/sbvr-api/user.sbvr +2 -0
  96. package/out/server-glue/module.d.ts +6 -6
  97. package/out/server-glue/module.js +4 -2
  98. package/out/server-glue/module.js.map +1 -1
  99. package/out/server-glue/server.js +5 -5
  100. package/out/server-glue/server.js.map +1 -1
  101. package/package.json +89 -73
  102. package/pinejs.png +0 -0
  103. package/repo.yml +9 -9
  104. package/src/bin/abstract-sql-compiler.ts +5 -7
  105. package/src/bin/odata-compiler.ts +11 -13
  106. package/src/bin/sbvr-compiler.ts +11 -17
  107. package/src/bin/utils.ts +3 -5
  108. package/src/config-loader/config-loader.ts +167 -53
  109. package/src/config-loader/env.ts +106 -6
  110. package/src/data-server/sbvr-server.js +44 -38
  111. package/src/database-layer/db.ts +205 -64
  112. package/src/express-emulator/express.js +10 -11
  113. package/src/http-transactions/transactions.js +29 -21
  114. package/src/migrator/async.ts +323 -0
  115. package/src/migrator/migrations.sbvr +43 -0
  116. package/src/migrator/sync.ts +152 -0
  117. package/src/migrator/utils.ts +458 -0
  118. package/src/odata-metadata/odata-metadata-generator.ts +12 -15
  119. package/src/passport-pinejs/passport-pinejs.ts +9 -7
  120. package/src/pinejs-session-store/pinejs-session-store.ts +15 -1
  121. package/src/sbvr-api/abstract-sql.ts +17 -14
  122. package/src/sbvr-api/common-types.ts +2 -1
  123. package/src/sbvr-api/control-flow.ts +45 -11
  124. package/src/sbvr-api/errors.ts +82 -77
  125. package/src/sbvr-api/express-extension.ts +6 -1
  126. package/src/sbvr-api/hooks.ts +123 -50
  127. package/src/sbvr-api/odata-response.ts +23 -28
  128. package/src/sbvr-api/permissions.ts +548 -415
  129. package/src/sbvr-api/sbvr-utils.ts +581 -259
  130. package/src/sbvr-api/translations.ts +248 -0
  131. package/src/sbvr-api/uri-parser.ts +63 -49
  132. package/src/sbvr-api/user.sbvr +2 -0
  133. package/src/server-glue/module.ts +16 -10
  134. package/src/server-glue/server.ts +5 -5
  135. package/tsconfig.dev.json +1 -0
  136. package/tsconfig.json +1 -2
  137. package/typings/lf-to-abstract-sql.d.ts +6 -9
  138. package/typings/memoizee.d.ts +1 -1
  139. package/.github/CODEOWNERS +0 -1
  140. package/circle.yml +0 -37
  141. package/docs/todo.txt +0 -22
  142. package/out/migrator/migrator.d.ts +0 -20
  143. package/out/migrator/migrator.js +0 -188
  144. package/out/migrator/migrator.js.map +0 -1
  145. package/src/migrator/migrator.ts +0 -286
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/database-layer/db.ts"],"names":[],"mappings":";;;AAOA,iDAA6C;AAC7C,4BAA4B;AAC5B,6CAAyC;AACzC,4CAA4C;AAC5C,2DAAiE;AAEpD,QAAA,OAAO,GAAG,IAAI,4BAAY,EAAE,CAAC;AAoB1C,MAAM,UAAU,GAAG,CAAC,KAAU,EAAqB,EAAE;IACpD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,KAAK,UAAU,CAAC;AAChD,CAAC,CAAC;AAEF,MAAa,aAAc,SAAQ,wBAAU;IAE5C,YAAY,OAAwC;QACnD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YAExB,KAAK,CAAC,OAAO,CAAC,OAAiB,CAAC,CAAC;SACjC;aAAM;YACN,KAAK,CAAC,OAAO,CAAC,CAAC;SACf;QACD,IACC,OAAO,IAAI,IAAI;YACf,OAAO,OAAO,KAAK,QAAQ;YAC3B,OAAO,CAAC,IAAI,IAAI,IAAI,EACnB;YAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;SACzB;IACF,CAAC;CACD;AAlBD,sCAkBC;AAED,MAAa,eAAgB,SAAQ,aAAa;CAAG;AAArD,0CAAqD;AACrD,MAAa,qBAAsB,SAAQ,eAAe;CAAG;AAA7D,sDAA6D;AAC7D,MAAa,yBAA0B,SAAQ,eAAe;CAAG;AAAjE,8DAAiE;AACjE,MAAa,oBAAqB,SAAQ,eAAe;CAAG;AAA5D,oDAA4D;AAC5D,MAAa,wBAAyB,SAAQ,eAAe;CAAG;AAAhE,4DAAgE;AAChE,MAAa,sBAAuB,SAAQ,aAAa;CAAG;AAA5D,wDAA4D;AAC5D,MAAa,sBAAuB,SAAQ,aAAa;CAAG;AAA5D,wDAA4D;AAE5D,MAAM,iBAAiB,GAAG,CAAC,GAAe,EAAiB,EAAE;IAC5D,eAAO,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,CAAC,GAAG,YAAY,aAAa,CAAC,EAAE;QAEpC,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;KAC9B;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG;IACpB,aAAa;IACb,eAAe;IACf,qBAAqB;IACrB,yBAAyB;IACzB,oBAAoB;IACpB,wBAAwB;IACxB,sBAAsB;IACtB,sBAAsB;CACtB,CAAC;AAsBW,QAAA,OAAO,GAAG,EAAkB,CAAC;AAE1C,MAAM,KAAK,GAAG;IACb,OAAO,EAAE;QACR,GAAG,EAAE,CAAC,UAAU;QAChB,GAAG,EAAE,UAAU;KACf;CACD,CAAC;AAEF,MAAM,gCAAgC,GAAG,CACxC,KAAa,EACb,aAAqB,EACpB,EAAE;IACH,IACC,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC;QACxB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG;QACzB,KAAK,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK,EACxB;QACD,MAAM,IAAI,SAAS,CAClB,sBAAsB,aAAa,iCAAiC,CACpE,CAAC;KACF;AACF,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAuB,EAAE,CAAC;AAS3D,SAAgB,gCAAgC,CAC/C,YAAoB,EACpB,WAAmB;IAEnB,gCAAgC,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAC7D,IAAI,2BAA2B,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE;QACtD,MAAM,IAAI,KAAK,CACd,uDAAuD,YAAY,yCAAyC,CAC5G,CAAC;KACF;IACD,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAC5C,2BAA2B,CAC3B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IACvC,IAAI,sBAAsB,IAAI,IAAI,EAAE;QACnC,MAAM,IAAI,KAAK,CACd,uDAAuD,YAAY,qCAAqC,WAAW,sCAAsC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CACrL,CAAC;KACF;IAED,2BAA2B,CAAC,YAAY,CAAC,GAAG,WAAW,CAAC;AACzD,CAAC;AApBD,4EAoBC;AAED,MAAM,gBAAgB,GAA2B,KAAK,WACrD,GAAG,EACH,QAAQ;IAER,OAAO,MAAM,IAAI,CAAC,WAAW,CAC5B,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAChD,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,EAAa,EAAE,EAAE;IACpC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC,CAAC;AAMF,MAAM,oBAAoB,GAAsB,GAAG,CAAC,KAAK;IACxD,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;QAGZ,MAAM,cAAc,GAAG,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAG3B,MAAM,cAAc,CAAC;QACtB,CAAC,CAAC;QACF,OAAO;YACN,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,QAAQ;SAClB,CAAC;IACF,CAAC;IACH,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE;QACZ,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC;QACF,OAAO;YACN,UAAU,EAAE,QAAQ;YACpB,QAAQ,EAAE,QAAQ;SAClB,CAAC;IACF,CAAC,CAAC;AAEL,MAAM,KAAK,GAAa,CAAC,IAAY,EAAE,EAAc,EAAE,EAAE;IACxD,IAAI,IAAI,KAAK,KAAK,EAAE;QACnB,UAAU,CAAC,EAAE,CAAC,CAAC;KACf;AACF,CAAC,CAAC;AACF,MAAM,UAAU,GAAa,CAAC,IAAY,EAAE,EAAc,EAAE,EAAE;IAC7D,IAAI,IAAI,KAAK,UAAU,EAAE;QACxB,UAAU,CAAC,EAAE,CAAC,CAAC;KACf;AACF,CAAC,CAAC;AAEF,MAAM,cAAc;IAInB,YAAY,EAAM,EAAU,aAAqB;QAArB,kBAAa,GAAb,aAAa,CAAQ;QADzC,YAAO,GAAmB,CAAC,CAAC;QAEnC,IAAI,CAAC,cAAc,GAAG,GAAG,EAAE;YAC1B,OAAO,CAAC,KAAK,CACZ,gCAAgC,GAAG,CAAC,EAAE,CAAC,SAAS,6BAA6B,CAC7E,CAAC;YACF,IAAI,IAAI,CAAC,aAAa,EAAE;gBACvB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACxC;YACD,EAAE,CAAC,QAAQ,EAAE,CAAC;QACf,CAAC,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,UAAU,CACtC,IAAI,CAAC,cAAc,EACnB,GAAG,CAAC,EAAE,CAAC,SAAS,CAChB,CAAC;IACH,CAAC;IACM,gBAAgB;QACtB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,OAAO;SACP;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACf,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1C,CAAC;IACM,gBAAgB;QACtB,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC3B,OAAO;SACP;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,IAAI,IAAI,CAAC,OAAO,KAAK,CAAC,EAAE;YACvB,IAAI,CAAC,qBAAqB,GAAG,UAAU,CACtC,IAAI,CAAC,cAAc,EACnB,GAAG,CAAC,EAAE,CAAC,SAAS,CAChB,CAAC;SACF;aAAM,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC;SACjB;IACF,CAAC;IACM,aAAa;QAEnB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1C,CAAC;CACD;AAED,MAAsB,EAAE;IAIvB,YACW,QAAiB,EAC3B,aAAsC;QAD5B,aAAQ,GAAR,QAAQ,CAAS;QAJpB,WAAM,GAAG,KAAK,CAAC;QAmHf,cAAS,GAGb;YACH,GAAG,EAAE,EAAE;YACP,QAAQ,EAAE,EAAE;SACZ,CAAC;QAlHD,IAAI,aAAa,YAAY,cAAc,EAAE;YAC5C,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;SACpC;aAAM;YACN,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;SAC9D;IACF,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACvC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QACpC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,GAAG,QAAQ,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IACM,QAAQ;QACd,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAGM,UAAU;QAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,OAAO,IAAI,CAAC;SACZ;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IACM,UAAU;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,UAAU,CACtB,GAAQ,EACR,WAAqB,EAAE,EACvB,GAAG,IAAW;QAEd,IACC,GAAG,CAAC,EAAE,CAAC,oBAAoB;YAC3B,IAAI,CAAC,QAAQ;YACb,CAAC,qCAAqC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC/C;YACD,MAAM,IAAI,sBAAsB,CAC/B,8DAA8D,GAAG,EAAE,CACnE,CAAC;SACF;QACD,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;IACvD,CAAC;IACS,KAAK,CAAC,WAAW,CAC1B,GAAQ,EACR,WAAqB,EAAE,EACvB,GAAG,IAAW;QAEd,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;QAEvC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtB,IAAI;YACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;SACtD;QAAC,OAAO,GAAQ,EAAE;YAClB,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC7B;gBAAS;YACT,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;YAClC,eAAO,CAAC,IAAI,CAAC,eAAe,EAAE;gBAC7B,SAAS;gBAiBT,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aAC/B,CAAC,CAAC;SACH;IACF,CAAC;IACM,KAAK,CAAC,QAAQ;QACpB,IAAI;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,gBAAgB,CAAC,mCAAmC,CAAC,CAAC;YAE3D,MAAM,OAAO,CAAC;SACd;gBAAS;YACT,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,IAAI,CAAC,EAAE,GAAG,UAAU,CAAC;YACrB,IAAI,CAAC,cAAc,EAAE,CAAC;SACtB;IACF,CAAC;IACM,KAAK,CAAC,GAAG;QACf,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,IAAI,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,CAAC;QAErD,MAAM,OAAO,CAAC;QAEd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC;QAChB,IAAI,CAAC,cAAc,EAAE,CAAC;IACvB,CAAC;IACM,qBAAqB;QAC3B,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IASM,EAAE,CAAC,IAA2B,EAAE,EAAc;QACpD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAEO,cAAc;QACrB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IACpC,CAAC;IAUM,KAAK,CAAC,cAAc,CAC1B,aAAqB,EACrB,IAAY,EACZ,YAAqB,IAAI;QAEzB,MAAM,IAAI,KAAK,CACd,sEAAsE,CACtE,CAAC;IACH,CAAC;IAGM,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,QAAQ,GAAG,IAAI;QACxD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YAClC,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;SACpD;QACD,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5B,MAAM,IAAI,SAAS,CAAC,0CAA0C,CAAC,CAAC;SAChE;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClB,MAAM,IAAI,sBAAsB,CAC/B,+CAA+C,CAC/C,CAAC;SACF;QACD,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,WAAW,KAAK,SAAS,IAAI,CAAC,CAAC;IAC3E,CAAC;CACD;AAtKD,gBAsKC;AAED,MAAM,gBAAgB,GAA4B,GAAG,CAAC,KAAK;IAC1D,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE;IACnB,CAAC,CAAE,CAAC,CAAC,IAAwB,CAAC;AAE/B,MAAM,iBAAiB,GAAG,CAAC,UAA+B,EAAiB,EAAE;IAC5E,OAAO,KAAK,EAAK,EAA8B,EAAmB,EAAE;QACnE,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;QACzC,IAAI,EAAE,CAAC;QACP,IAAI;YACH,EAAE,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,CAAC;SACrC;QAAC,OAAO,GAAQ,EAAE;YAClB,MAAM,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,IAAI,EAAE,EAAE;YACP,IAAI;gBACH,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;gBAC5B,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC;gBACf,OAAO,MAAM,CAAC;aACd;YAAC,OAAO,GAAQ,EAAE;gBAClB,IAAI;oBACH,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC;iBACpB;gBAAC,MAAM;iBAEP;gBACD,MAAM,GAAG,CAAC;aACV;SACD;aAAM;YACN,OAAO,EAAE,CAAC;SACV;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,IAAI,OAA8B,CAAC;AACnC,IAAI;IAEH,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAAC,OAAO,CAAC,EAAE;CAEX;AASD,IAAI,OAAO,IAAI,IAAI,EAAE;IACpB,MAAM,EAAE,GAAG,OAAO,CAAC;IACnB,eAAO,CAAC,QAAQ,GAAG,CAAC,aAAa,EAAE,EAAE;QACpC,MAAM,mBAAmB,GAAG,OAAO,CAAC;QACpC,MAAM,wBAAwB,GAAG,OAAO,CAAC;QACzC,MAAM,6BAA6B,GAAG,OAAO,CAAC;QAC9C,MAAM,iCAAiC,GAAG,OAAO,CAAC;QAElD,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC;QAClC,MAAM,QAAQ,GAAG,CAAC,MAAqB,EAAE,EAAE;YAC1C,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC;YAC/B,MAAM,CAAC,iBAAiB,KAAK,GAAG,CAAC,EAAE,CAAC,iBAAiB,CAAC;YACtD,MAAM,CAAC,iBAAiB,KAAK,GAAG,CAAC,EAAE,CAAC,gBAAgB,CAAC;YACrD,MAAM,CAAC,aAAa,KAAK,GAAG,CAAC,EAAE,CAAC,YAAY,CAAC;YAC7C,MAAM,CAAC,uBAAuB,KAAK,GAAG,CAAC,EAAE,CAAC,uBAAuB,CAAC;YAClE,MAAM,CAAC,SAAS,KAAK,GAAG,CAAC,EAAE,CAAC,SAAS,CAAC;YAEtC,MAAM,CAAC,kBAAkB,KAAK,GAAG,CAAC,EAAE,CAAC,kBAAkB,CAAC;YACxD,MAAM,CAAC,OAAO,KAAK,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC;YAClC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,IAAI,SAAS,IAAI,IAAI,EAAE;gBACtB,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;oBAC1B,MAAM,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,uBAAuB,SAAS,GAAG,EAAE,CAAC,CAAC;gBAC7D,CAAC,CAAC,CAAC;aACH;YACD,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE;gBAC1B,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBAC1B,IAAI;wBACH,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,GAAG,CAAC,CAAC;wBACjD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;qBACpB;oBAAC,OAAO,CAAC,EAAE;wBACX,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC;qBACrD;gBACF,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACrB,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,CAAC;QACV,CAAC,CAAC;QAEF,IAAI,IAAa,CAAC;QAClB,IAAI,OAAgB,CAAC;QACrB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE;YACtC,MAAM,kBAAkB,GAA8B,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAEtF,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAkB,CAAC;YACxE,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;SACxB;aAAM;YACN,MAAM,MAAM,GAAG,aAAa,CAAC;YAC7B,IAAI,SAAS,IAAI,MAAM,EAAE;gBACxB,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChC,IAAI,MAAM,CAAC,OAAO,EAAE;oBACnB,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBACnC;aACD;iBAAM;gBACN,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;aACxB;SACD;QACD,OAAO,KAAK,IAAI,CAAC;QAEjB,MAAM,YAAY,GAAG,CAAC,EACrB,QAAQ,EACR,IAAI,GAIJ,EAAU,EAAE;YACZ,OAAO;gBACN,IAAI;gBACJ,YAAY,EAAE,QAAQ;gBACtB,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;aACvB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,UAAW,SAAQ,EAAE;YAC1B,YACS,EAAiB,EACzB,QAAiB,EACjB,aAAsC;gBAEtC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAJvB,OAAE,GAAF,EAAE,CAAe;YAK1B,CAAC;YAES,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;gBACvC,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/D,CAAC;YAES,KAAK,CAAC,WAAW,CAC1B,GAAQ,EACR,QAAkB,EAClB,eAA+B,KAAK;gBAEpC,IAAI,YAAY,IAAI,sCAAsC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;oBACrE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,GAAG,IAAI,CAAC,CAAC;iBAC/D;gBAED,IAAI,MAAM,CAAC;gBACX,IAAI;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;wBAC5B,IAAI,EAAE,GAAG;wBACT,MAAM,EAAE,QAAQ;qBAChB,CAAC,CAAC;iBACH;gBAAC,OAAO,GAAQ,EAAE;oBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,mBAAmB,EAAE;wBACrC,MAAM,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;qBACrC;oBACD,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,EAAE;wBAC1C,MAAM,IAAI,yBAAyB,CAAC,GAAG,CAAC,CAAC;qBACzC;oBACD,IAAI,GAAG,CAAC,IAAI,KAAK,6BAA6B,EAAE;wBAC/C,MAAM,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;qBACpC;oBACD,IAAI,GAAG,CAAC,IAAI,KAAK,iCAAiC,EAAE;wBACnD,MAAM,IAAI,wBAAwB,CAAC,GAAG,CAAC,CAAC;qBACxC;oBACD,MAAM,GAAG,CAAC;iBACV;gBACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAES,KAAK,CAAC,SAAS;gBACxB,IAAI;oBAGH,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAwB,CAAC;oBACpD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC1B,MAAM,GAAG,GAAG,IAAI,aAAa,CAAC,0BAA0B,CAAC,CAAC;wBAC1D,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;4BAC/B,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE;gCAErB,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;4BAC5C,CAAC,CAAC,CAAC;yBACH;wBACD,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;qBACtB;oBACD,MAAM,IAAA,sBAAO,EACZ,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAC7B,GAAG,CAAC,EAAE,CAAC,eAAe,EACtB,oCAAoC,CACpC,CAAC;oBACF,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;iBAClB;gBAAC,OAAO,GAAQ,EAAE;oBAClB,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;oBAC7B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrB,MAAM,GAAG,CAAC;iBACV;YACF,CAAC;YAES,KAAK,CAAC,OAAO;gBACtB,IAAI;oBACH,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBAClC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC;iBAClB;gBAAC,OAAO,GAAQ,EAAE;oBAClB,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;oBACrB,MAAM,GAAG,CAAC;iBACV;YACF,CAAC;YAEe,KAAK,CAAC,cAAc,CACnC,YAAoB,EACpB,GAAW,EACX,WAAoB,IAAI;gBAExB,gCAAgC,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,2BAA2B,CAAC,YAAY,CAAC,CAAC;gBAC9D,IAAI,WAAW,IAAI,IAAI,EAAE;oBACxB,MAAM,IAAI,KAAK,CACd,8BAA8B,YAAY,kBAAkB,CAC5D,CAAC;iBACF;gBACD,IAAI;oBACH,IAAI,QAAQ,EAAE;wBACb,MAAM,IAAI,CAAC,UAAU,CAAC,uCAAuC,EAAE;4BAC9D,WAAW;4BACX,GAAG;yBACH,CAAC,CAAC;wBACH,OAAO,IAAI,CAAC;qBACZ;yBAAM;wBACN,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CACrC,2CAA2C,EAC3C,CAAC,WAAW,EAAE,GAAG,CAAC,CAClB,CAAC;wBACF,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,yBAAyB,KAAK,IAAI,CAAC;qBAClD;iBACD;gBAAC,OAAO,GAAG,EAAE;oBACb,MAAM,IAAI,KAAK,CACd,mEAAmE,GAAG,EAAE,CACxE,CAAC;iBACF;YACF,CAAC;YAEM,KAAK,CAAC,SAAS,CAAC,mBAA2B,EAAE;gBACnD,IAAI,gBAAgB,KAAK,EAAE,EAAE;oBAC5B,gBAAgB,GAAG,QAAQ,GAAG,gBAAgB,CAAC;iBAC/C;gBACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;WAMtB,gBAAgB;KACtB,CAAC,CAAC;YACJ,CAAC;SACD;QACD,OAAO;YACN,MAAM,YAAkB;YACxB,UAAU,EAAE,gBAAgB;YAC5B,WAAW,EAAE,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;gBACpC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBACxD,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC;YACX,CAAC,CAAC;YACF,eAAe,EAAE,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBAC1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvC,MAAM,EAAE,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBACxD,EAAE,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC,CAAC;YACF,GAAG,YAAY;SACf,CAAC;IACH,CAAC,CAAC;CACF;AAED,IAAI,UAAoC,CAAC;AACzC,IAAI;IAEH,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B;AAAC,OAAO,CAAC,EAAE;CAEX;AAID,IAAI,UAAU,IAAI,IAAI,EAAE;IACvB,MAAM,KAAK,GAAG,UAAU,CAAC;IACzB,eAAO,CAAC,KAAK,GAAG,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,sBAAsB,GAAG,cAAc,CAAC;QAC9C,MAAM,2BAA2B,GAAG,sBAAsB,CAAC;QAC3D,MAAM,gCAAgC,GAAG,8BAA8B,CAAC;QACxE,MAAM,IAAI,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,EAAE;YAC5B,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAC/B,IAAA,2BAAY,EAAuB,CAAC,QAAQ,EAAE,EAAE;YAC/C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QAMJ,MAAM,YAAY,GAAG,CAAC,IAAmB,EAAU,EAAE;YACpD,OAAO;gBACN,IAAI;gBACJ,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACvB,CAAC;QACH,CAAC,CAAC;QACF,MAAM,OAAQ,SAAQ,EAAE;YACvB,YACS,EAAoB,EACpB,KAAyB,EACjC,QAAiB,EACjB,aAAsC;gBAEtC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBALvB,OAAE,GAAF,EAAE,CAAkB;gBACpB,UAAK,GAAL,KAAK,CAAoB;YAKlC,CAAC;YAES,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;gBACvC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YACxE,CAAC;YAES,KAAK,CAAC,WAAW,CAAC,GAAQ,EAAE,QAAkB;gBACvD,IAAI,MAAM,CAAC;gBACX,IAAI;oBACH,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAgB,CAAC,QAAQ,EAAE,EAAE;wBACvD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBACxC,CAAC,CAAC,CAAC;iBACH;gBAAC,OAAO,GAAQ,EAAE;oBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,sBAAsB,EAAE;wBAExC,MAAM,IAAI,qBAAqB,CAAC,GAAuB,CAAC,CAAC;qBACzD;oBACD,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,EAAE;wBAC7C,MAAM,IAAI,yBAAyB,CAAC,GAAuB,CAAC,CAAC;qBAC7D;oBACD,IAAI,GAAG,CAAC,IAAI,KAAK,gCAAgC,EAAE;wBAClD,MAAM,IAAI,oBAAoB,CAAC,GAAuB,CAAC,CAAC;qBACxD;oBACD,MAAM,GAAG,CAAC;iBACV;gBACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAES,KAAK,CAAC,SAAS;gBACxB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;gBAC9C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;YACf,CAAC;YAES,KAAK,CAAC,OAAO;gBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC;YACf,CAAC;YAEM,KAAK,CAAC,SAAS,CAAC,mBAA2B,EAAE;gBACnD,IAAI,gBAAgB,KAAK,EAAE,EAAE;oBAC5B,gBAAgB,GAAG,SAAS,GAAG,gBAAgB,CAAC;iBAChD;gBACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAC3B;;;;;;WAMM,gBAAgB;KACtB,EACA,CAAC,OAAO,CAAC,QAAQ,CAAC,CAClB,CAAC;YACH,CAAC;SACD;QAED,OAAO;YACN,MAAM,SAAe;YACrB,UAAU,EAAE,gBAAgB;YAC5B,WAAW,EAAE,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBACtD,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC5D,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBACpC,OAAO,EAAE,CAAC;YACX,CAAC,CAAC;YACF,eAAe,EAAE,iBAAiB,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE;gBAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,EAAE,CAAC;gBAC1C,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC;gBAC5D,EAAE,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAAC;gBAC9C,OAAO,EAAE,CAAC,UAAU,EAAE,CAAC;YACxB,CAAC,CAAC;YACF,GAAG,YAAY;SACf,CAAC;IACH,CAAC,CAAC;CACF;AAKD,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,IAAI,IAAI,EAAE;IAejE,eAAO,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,EAAE;QACjC,MAAM,qBAAqB,GAAG,CAAC,CAAC;QAEhC,MAAM,EAAE,GAAG,MAAM,CAAC,YAAY,CAC7B,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,CAAC,GAAG,IAAI,GAAG,IAAI,CACf,CAAC;QACF,MAAM,WAAW,GAAG,CAAC,MAAoB,EAAE,EAAE;YAC5C,IAAI;gBACH,OAAO,MAAM,CAAC,QAAQ,CAAC;aACvB;YAAC,OAAO,CAAC,EAAE;aAEX;QACF,CAAC,CAAC;QACF,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAU,EAAE;YACrD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC;YAE/B,MAAM,IAAI,GAAU,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,EAAE;gBAChC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aAC9B;YACD,OAAO;gBACN,IAAI;gBACJ,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC;aAC7B,CAAC;QACH,CAAC,CAAC;QAEF,MAAM,QAAS,SAAQ,EAAE;YACxB,YACS,EAAiB,EACzB,QAAiB,EACjB,aAAsC;gBAEtC,KAAK,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;gBAJvB,OAAE,GAAF,EAAE,CAAe;YAK1B,CAAC;YAES,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;gBACvC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;YAC7D,CAAC;YAES,KAAK,CAAC,WAAW,CAAC,GAAQ,EAAE,QAAkB;gBACvD,IAAI,MAAM,CAAC;gBACX,IAAI;oBACH,MAAM,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;iBACjD;gBAAC,OAAO,GAAQ,EAAE;oBAClB,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE;wBACvC,MAAM,IAAI,eAAe,CAAC,oBAAoB,CAAC,CAAC;qBAChD;oBACD,MAAM,GAAG,CAAC;iBACV;gBACD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YAES,KAAK,CAAC,SAAS;gBACxB,OAAO,MAAM,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;YACjC,CAAC;YAES,KAAK,CAAC,OAAO;gBACtB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;YAClB,CAAC;YAEM,KAAK,CAAC,SAAS,CAAC,mBAA2B,EAAE;gBACnD,IAAI,gBAAgB,KAAK,EAAE,EAAE;oBAC5B,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,CAAC;iBAC9C;gBACD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC;;;;;;;;OAQ1B,gBAAgB;KAClB,CAAC,CAAC;YACJ,CAAC;SACD;QAED,MAAM,aAAa;YAIlB,YAAoB,EAAkB;gBAAlB,OAAE,GAAF,EAAE,CAAgB;gBAH9B,YAAO,GAAG,IAAI,CAAC;gBACf,UAAK,GAAiB,EAAE,CAAC;gBAQzB,iBAAY,GAAG,GAAG,EAAE;oBAC3B,IAAI,IAA4B,CAAC;oBAEjC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE;wBACjC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBAClC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;qBACvD;oBACD,IAAI,IAAI,CAAC,OAAO,EAAE;wBACjB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;wBACzB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;qBACtD;gBACF,CAAC,CAAC;gBAhBD,IAAI,CAAC,YAAY,EAAE,CAAC;YACrB,CAAC;YAiBM,KAAK,CAAC,UAAU,CAAC,GAAQ,EAAE,QAAkB;gBACnD,OAAO,MAAM,IAAI,OAAO,CAAe,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBAC1D,MAAM,eAAe,GAAyB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE;wBAC9D,OAAO,CAAC,OAAO,CAAC,CAAC;oBAClB,CAAC,CAAC;oBACF,MAAM,aAAa,GAA8B,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;wBAC7D,MAAM,CAAC,GAAG,CAAC,CAAC;wBACZ,OAAO,KAAK,CAAC;oBACd,CAAC,CAAC;oBAEF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;gBAClE,CAAC,CAAC,CAAC;YACJ,CAAC;YAEM,KAAK,CAAC,QAAQ;gBACpB,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBACpC,MAAM,eAAe,GAAyB,GAAG,EAAE;wBAClD,OAAO,EAAE,CAAC;wBACV,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;oBAC7B,CAAC,CAAC;oBACF,MAAM,aAAa,GAA8B,GAAG,EAAE;wBACrD,OAAO,EAAE,CAAC;wBACV,OAAO,IAAI,CAAC;oBACb,CAAC,CAAC;oBACF,IAAI,CAAC,KAAK,GAAG;wBACZ;4BACC,qCAAqC;4BACrC,EAAE;4BACF,eAAe;4BACf,aAAa;yBACb;qBACD,CAAC;oBACF,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACtB,CAAC,CAAC,CAAC;YACJ,CAAC;YAEM,MAAM;gBACZ,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;YACtB,CAAC;SACD;QAED,OAAO;YACN,MAAM,UAAgB;YACtB,UAAU,EAAE,gBAAgB;YAC5B,WAAW,EAAE,iBAAiB,CAC7B,CAAC,aAAa,EAAE,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACvB,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;oBACrB,OAAO,CACN,IAAI,QAAQ,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CACzD,CAAC;gBACH,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CACH;YACD,eAAe,EAAE,iBAAiB,CACjC,CAAC,aAAa,EAAE,EAAE,CACjB,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBACvB,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE;oBACrB,OAAO,CAAC,IAAI,QAAQ,CAAC,IAAI,aAAa,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACJ,CAAC,CAAC,CACH;YACD,GAAG,YAAY;SACf,CAAC;IACH,CAAC,CAAC;CACF;AAMM,MAAM,OAAO,GAAG,CACtB,eAAmC,EAClC,EAAE;IACH,IAAI,eAAO,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE;QAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;KAC1E;IACD,OAAO,eAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAChE,CAAC,CAAC;AAPW,QAAA,OAAO,WAOlB"}
@@ -49,16 +49,15 @@ const app = (function () {
49
49
  match,
50
50
  paramName,
51
51
  // Flatten middleware list to handle arrays of middleware in the arg list.
52
- middleware: _.flattenDeep(middleware),
52
+ middleware: middleware.flat(Infinity),
53
53
  });
54
54
  };
55
55
  const process = async function (
56
56
  /** @type string */ method,
57
57
  /** @type string */ uri,
58
58
  /** @type {{[key: string]: any}} */ headers,
59
- /** @type any */ body,
59
+ /** @type any */ body = '',
60
60
  ) {
61
- body ??= '';
62
61
  if (!handlers[method]) {
63
62
  throw [404, null, null];
64
63
  }
@@ -93,22 +92,22 @@ const app = (function () {
93
92
  json(/** @type any */ obj) {
94
93
  // Stringify and parse to emulate passing over network.
95
94
  obj = JSON.parse(JSON.stringify(obj));
96
- if (this.statusCode >= 400) {
97
- reject([this.statusCode, obj, null]);
98
- } else {
99
- resolve([this.statusCode, obj, null]);
100
- }
95
+ this.end(obj);
101
96
  },
102
97
  send(/** @type any */ data) {
103
98
  data = _.cloneDeep(data);
99
+ this.end(data);
100
+ },
101
+ end(/** @type any */ data) {
104
102
  if (this.statusCode >= 400) {
105
103
  reject([this.statusCode, data, null]);
106
104
  } else {
107
105
  resolve([this.statusCode, data, null]);
108
106
  }
109
107
  },
110
- sendStatus(/** @type undefined | number */ statusCode) {
111
- statusCode ??= this.statusCode;
108
+ sendStatus(
109
+ /** @type undefined | number */ statusCode = this.statusCode,
110
+ ) {
112
111
  if (statusCode >= 400) {
113
112
  reject([statusCode, null, null]);
114
113
  } else {
@@ -163,7 +162,7 @@ const app = (function () {
163
162
  checkMethodHandlers();
164
163
  }
165
164
  } else {
166
- res.sendStatus(404);
165
+ res.status(404).end();
167
166
  }
168
167
  };
169
168
  checkMethodHandlers();
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/express-emulator/express.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../src/express-emulator/express.js"],"names":[],"mappings":"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"}
@@ -1,19 +1,3 @@
1
- export function setup(app: import("express").Application, sbvrUtils: typeof import("../sbvr-api/sbvr-utils")): import("../sbvr-api/common-types").Resolvable<void>;
2
- export namespace config {
3
- const models: {
4
- apiRoot: string;
5
- modelText: any;
6
- customServerCode: {
7
- setup: typeof setup;
8
- };
9
- migrations: {
10
- '11.0.0-modified-at': string;
11
- '15.0.0-true-boolean': {
12
- mysql: string;
13
- postgres: string;
14
- websql: string;
15
- };
16
- };
17
- }[];
18
- }
1
+ export function setup(app: import("express").Application, sbvrUtilsInstance: typeof import("../sbvr-api/sbvr-utils"), db: import("../database-layer/db").Database): import("../sbvr-api/common-types").Resolvable<void>;
2
+ export let config: import('../config-loader/config-loader').Config;
19
3
  export let addModelHooks: (modelName: string) => void;
@@ -3,6 +3,7 @@ import { odataNameToSqlName } from '@balena/odata-to-abstract-sql';
3
3
  // @ts-ignore
4
4
  const transactionModel = require('./transaction.sbvr');
5
5
 
6
+ /** @type {import('../config-loader/config-loader').Config} */
6
7
  export let config = {
7
8
  models: [
8
9
  {
@@ -24,19 +25,26 @@ ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT N
24
25
  ALTER TABLE "transaction"
25
26
  ADD COLUMN IF NOT EXISTS "modified at" TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL;\
26
27
  `,
27
- '15.0.0-true-boolean': {
28
- mysql: `\
29
- ALTER TABLE "lock"
30
- MODIFY "is exclusive" BOOLEAN NOT NULL,
31
- MODIFY "is under lock" BOOLEAN NOT NULL;\
32
- `,
33
- postgres: `\
34
- ALTER TABLE "lock"
35
- ALTER COLUMN "is exclusive" SET DATA TYPE BOOLEAN USING b::BOOLEAN,
36
- ALTER COLUMN "is under lock" SET DATA TYPE BOOLEAN USING b::BOOLEAN;\
37
- `,
38
- // No need to migrate for websql
39
- websql: '',
28
+ '15.0.0-data-types': async (tx, sbvrUtils) => {
29
+ switch (sbvrUtils.db.engine) {
30
+ case 'mysql':
31
+ await tx.executeSql(`\
32
+ ALTER TABLE "lock"
33
+ MODIFY "is exclusive" BOOLEAN NOT NULL,
34
+ MODIFY "is under lock" BOOLEAN NOT NULL;`);
35
+ break;
36
+ case 'postgres':
37
+ await tx.executeSql(`\
38
+ ALTER TABLE "lock"
39
+ ALTER COLUMN "is exclusive" DROP DEFAULT,
40
+ ALTER COLUMN "is exclusive" SET DATA TYPE BOOLEAN USING "is exclusive"::BOOLEAN,
41
+ ALTER COLUMN "is exclusive" SET DEFAULT FALSE,
42
+ ALTER COLUMN "is under lock" DROP DEFAULT,
43
+ ALTER COLUMN "is under lock" SET DATA TYPE BOOLEAN USING "is under lock"::BOOLEAN,
44
+ ALTER COLUMN "is under lock" SET DEFAULT FALSE;`);
45
+ break;
46
+ // No need to migrate for websql
47
+ }
40
48
  },
41
49
  },
42
50
  },
@@ -68,8 +76,8 @@ SELECT NOT EXISTS(
68
76
  ) AS result;`,
69
77
  [request.resourceName, id],
70
78
  );
71
- } catch (err) {
72
- logger.error('Unable to check resource locks', err, err.stack);
79
+ } catch (/** @type any */ err) {
80
+ logger.error('Unable to check resource locks', err);
73
81
  throw new Error('Unable to check resource locks');
74
82
  }
75
83
  if ([false, 0, '0'].includes(result.rows[0].result)) {
@@ -151,7 +159,7 @@ WHERE "conditional resource"."transaction" = ?;\
151
159
  [transactionID],
152
160
  );
153
161
 
154
- conditionalResources.rows.forEach((conditionalResource) => {
162
+ for (const conditionalResource of conditionalResources.rows) {
155
163
  const { placeholder } = conditionalResource;
156
164
  if (placeholder != null && placeholder.length > 0) {
157
165
  /** @type {Function} */
@@ -165,7 +173,7 @@ WHERE "conditional resource"."transaction" = ?;\
165
173
  // @ts-ignore
166
174
  placeholders[placeholder] = { promise, resolve, reject };
167
175
  }
168
- });
176
+ }
169
177
 
170
178
  // get conditional resources (if exist)
171
179
  await Promise.all(
@@ -263,14 +271,14 @@ WHERE "conditional resource"."transaction" = ?;\
263
271
  app.post('/transaction/execute', async (req, res) => {
264
272
  const id = Number(req.body.id);
265
273
  if (Number.isNaN(id)) {
266
- res.sendStatus(404);
274
+ res.status(404).end();
267
275
  } else {
268
276
  try {
269
277
  await endTransaction(id);
270
278
 
271
- res.sendStatus(200);
272
- } catch (err) {
273
- console.error('Error ending transaction', err, err.stack);
279
+ res.status(200).end();
280
+ } catch (/** @type any */ err) {
281
+ console.error('Error ending transaction', err);
274
282
  res.status(404).json(err);
275
283
  }
276
284
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/http-transactions/transactions.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions.js","sourceRoot":"","sources":["../../src/http-transactions/transactions.js"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Tx } from '../database-layer/db';
2
+ import type { Model } from '../config-loader/config-loader';
3
+ type ApiRootModel = Model & {
4
+ apiRoot: string;
5
+ };
6
+ export declare const run: (tx: Tx, model: ApiRootModel) => Promise<void>;
7
+ export {};
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.run = void 0;
4
+ const _ = require("lodash");
5
+ const sbvrUtils = require("../sbvr-api/sbvr-utils");
6
+ const utils_1 = require("./utils");
7
+ const env_1 = require("../config-loader/env");
8
+ (sbvrUtils.api?.migrations?.logger.info ?? console.info)(`Async migration execution is ${(0, env_1.booleanToEnabledString)(utils_1.migratorEnv.asyncMigrationIsEnabled)}`);
9
+ const run = async (tx, model) => {
10
+ const { migrations } = model;
11
+ if (migrations == null || _.isEmpty(migrations)) {
12
+ return;
13
+ }
14
+ const asyncMigrations = (0, utils_1.getRunnableAsyncMigrations)(migrations);
15
+ if (asyncMigrations == null) {
16
+ return;
17
+ }
18
+ await $run(tx, model, asyncMigrations);
19
+ };
20
+ exports.run = run;
21
+ const $run = async (setupTx, model, migrations) => {
22
+ const modelName = model.apiRoot;
23
+ const asyncMigrationSetup = [];
24
+ const executedMigrations = await (0, utils_1.getExecutedMigrations)(setupTx, modelName);
25
+ const pendingMigrations = (0, utils_1.filterAndSortPendingMigrations)(migrations, executedMigrations);
26
+ for (const [key, migration] of pendingMigrations) {
27
+ let asyncRunnerMigratorFn;
28
+ let initMigrationState = {
29
+ migration_key: key,
30
+ start_time: new Date(),
31
+ last_run_time: new Date(),
32
+ run_count: 0,
33
+ migrated_row_count: 0,
34
+ error_count: 0,
35
+ errorThreshold: utils_1.migratorEnv.asyncMigrationDefaultErrorThreshold,
36
+ delayMS: utils_1.migratorEnv.asyncMigrationDefaultDelayMS,
37
+ backoffDelayMS: utils_1.migratorEnv.asyncMigrationDefaultBackoffDelayMS,
38
+ converged_time: undefined,
39
+ is_backing_off: false,
40
+ };
41
+ if (typeof migration === 'object') {
42
+ const batchSize = migration.asyncBatchSize || utils_1.migratorEnv.asyncMigrationDefaultBatchSize;
43
+ if (migration.asyncFn && typeof migration.asyncFn === 'function') {
44
+ asyncRunnerMigratorFn = async (tx) => {
45
+ return await migration.asyncFn(tx, {
46
+ batchSize,
47
+ }, sbvrUtils);
48
+ };
49
+ }
50
+ else if (migration.asyncSql && typeof migration.asyncSql === 'string') {
51
+ const asyncMigrationSqlStatement = migration.asyncSql?.replace('%%ASYNC_BATCH_SIZE%%', `${batchSize}`);
52
+ asyncRunnerMigratorFn = async (tx) => (await tx.executeSql(asyncMigrationSqlStatement)).rowsAffected;
53
+ }
54
+ else {
55
+ (sbvrUtils.api.migrations?.logger.error ?? console.error)(`Invalid migration object: ${JSON.stringify(migration, null, 2)}`);
56
+ continue;
57
+ }
58
+ initMigrationState = {
59
+ ...initMigrationState,
60
+ ..._.pickBy(_.pick(migration, ['backoffDelayMS', 'delayMS', 'errorThreshold']), (value) => value != null),
61
+ };
62
+ }
63
+ else if (typeof migration === 'string') {
64
+ asyncRunnerMigratorFn = async (tx) => (await tx.executeSql(migration)).rowsAffected;
65
+ }
66
+ else {
67
+ (sbvrUtils.api.migrations?.logger.error ?? console.error)(`Invalid async migration object: ${JSON.stringify(migration, null, 2)}`);
68
+ continue;
69
+ }
70
+ await (0, utils_1.initMigrationStatus)(setupTx, initMigrationState);
71
+ asyncMigrationSetup.push({
72
+ key,
73
+ initMigrationState,
74
+ asyncRunnerMigratorFn,
75
+ });
76
+ }
77
+ setupTx.on('end', () => {
78
+ for (const { key, initMigrationState, asyncRunnerMigratorFn, } of asyncMigrationSetup) {
79
+ const asyncRunner = async () => {
80
+ if (!utils_1.migratorEnv.asyncMigrationIsEnabled) {
81
+ setTimeout(asyncRunner, initMigrationState.backoffDelayMS);
82
+ return;
83
+ }
84
+ try {
85
+ const $migrationState = await sbvrUtils.db.transaction(async (tx) => await (0, utils_1.lockMigrations)({ tx, modelName, blocking: false }, async () => {
86
+ const migrationState = await (0, utils_1.readMigrationStatus)(tx, key);
87
+ if (!migrationState) {
88
+ (sbvrUtils.api.migrations?.logger.info ?? console.info)(`stopping async migration due to missing migration status: ${key}`);
89
+ return false;
90
+ }
91
+ if (migrationState.last_run_time) {
92
+ const durationSinceLastRun = Date.now() - migrationState.last_run_time.getTime();
93
+ const delayMs = migrationState.is_backing_off
94
+ ? initMigrationState.backoffDelayMS
95
+ : initMigrationState.delayMS;
96
+ if (durationSinceLastRun < delayMs) {
97
+ return;
98
+ }
99
+ }
100
+ try {
101
+ const migratedRows = await sbvrUtils.db.transaction(async (migrationTx) => {
102
+ tx.disableAutomaticClose();
103
+ const rollbackMigrationTx = async () => {
104
+ try {
105
+ if (!migrationTx.isClosed()) {
106
+ await migrationTx.rollback();
107
+ }
108
+ }
109
+ catch (err) {
110
+ (sbvrUtils.api.migrations?.logger.error ??
111
+ console.error)(`error rolling back pending async migration tx on mgmt tx end/rollback: ${key}: ${err}`);
112
+ }
113
+ };
114
+ tx.on('rollback', rollbackMigrationTx);
115
+ tx.on('end', rollbackMigrationTx);
116
+ return ((await asyncRunnerMigratorFn?.(migrationTx)) ?? 0);
117
+ });
118
+ migrationState.migrated_row_count += migratedRows;
119
+ if (migratedRows === 0) {
120
+ migrationState.is_backing_off = true;
121
+ migrationState.converged_time ??= new Date();
122
+ }
123
+ else {
124
+ migrationState.is_backing_off = false;
125
+ }
126
+ }
127
+ catch (err) {
128
+ migrationState.error_count++;
129
+ if (err instanceof Error) {
130
+ if (migrationState.error_count %
131
+ initMigrationState.errorThreshold ===
132
+ 0) {
133
+ (sbvrUtils.api.migrations?.logger.error ??
134
+ console.error)(`${key}: ${err.name} ${err.message}`);
135
+ migrationState.is_backing_off = true;
136
+ }
137
+ }
138
+ else {
139
+ (sbvrUtils.api.migrations?.logger.error ?? console.error)(`async migration error unknown: ${key}: ${err}`);
140
+ }
141
+ }
142
+ finally {
143
+ migrationState.last_run_time = new Date();
144
+ migrationState.run_count += 1;
145
+ await (0, utils_1.updateMigrationStatus)(tx, migrationState);
146
+ }
147
+ return migrationState;
148
+ }));
149
+ if ($migrationState === false) {
150
+ return;
151
+ }
152
+ if ($migrationState == null || $migrationState.is_backing_off) {
153
+ setTimeout(asyncRunner, initMigrationState.backoffDelayMS);
154
+ }
155
+ else {
156
+ setTimeout(asyncRunner, initMigrationState.delayMS);
157
+ }
158
+ }
159
+ catch (err) {
160
+ (sbvrUtils.api.migrations?.logger.error ?? console.error)(`error running async migration: ${key}: ${err}`);
161
+ setTimeout(asyncRunner, initMigrationState.backoffDelayMS);
162
+ }
163
+ };
164
+ setTimeout(asyncRunner, initMigrationState.delayMS);
165
+ }
166
+ });
167
+ };
168
+ //# sourceMappingURL=async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/migrator/async.ts"],"names":[],"mappings":"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"}
@@ -21,3 +21,46 @@ Term: migration lock
21
21
 
22
22
  Fact Type: migration lock has model name
23
23
  Necessity: each migration lock has exactly one model name
24
+
25
+ Term: migration key
26
+ Concept Type: Short Text (Type)
27
+ Term: start time
28
+ Concept Type: Date Time (Type)
29
+ Term: last run time
30
+ Concept Type: Date Time (Type)
31
+ Term: run count
32
+ Concept Type: Integer (Type)
33
+ Term: migrated row count
34
+ Concept Type: Integer (Type)
35
+ Term: error count
36
+ Concept Type: Integer (Type)
37
+ Term: converged time
38
+ Concept Type: Date Time (Type)
39
+
40
+
41
+ Term: migration status
42
+ Reference Scheme: migration key
43
+ Database ID Field: migration key
44
+
45
+ Fact Type: migration status has migration key
46
+ Necessity: each migration status has exactly one migration key
47
+
48
+ Fact Type: migration status has start time
49
+ Necessity: each migration status has at most one start time
50
+
51
+ Fact Type: migration status has last run time
52
+ Necessity: each migration status has at most one last run time
53
+
54
+ Fact Type: migration status has run count
55
+ Necessity: each migration status has exactly one run count
56
+
57
+ Fact Type: migration status has migrated row count
58
+ Necessity: each migration status has at most one migrated row count
59
+
60
+ Fact Type: migration status has error count
61
+ Necessity: each migration status has at most one error count
62
+
63
+ Fact Type: migration status is backing off
64
+
65
+ Fact Type: migration status has converged time
66
+ Necessity: each migration status has at most one converged time
@@ -0,0 +1,9 @@
1
+ import type { Tx } from '../database-layer/db';
2
+ import type { Config, Model } from '../config-loader/config-loader';
3
+ type ApiRootModel = Model & {
4
+ apiRoot: string;
5
+ };
6
+ export declare const postRun: (tx: Tx, model: ApiRootModel) => Promise<void>;
7
+ export declare const run: (tx: Tx, model: ApiRootModel) => Promise<void>;
8
+ export declare const config: Config;
9
+ export {};