@saltcorn/data 0.6.2-beta.1 → 0.6.2-beta.2
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/dist/base-plugin/actions.d.ts +141 -0
- package/dist/base-plugin/actions.d.ts.map +1 -0
- package/dist/base-plugin/actions.js +551 -0
- package/dist/base-plugin/actions.js.map +1 -0
- package/dist/base-plugin/base.test.d.ts +2 -0
- package/dist/base-plugin/base.test.d.ts.map +1 -0
- package/dist/base-plugin/base.test.js +15 -0
- package/dist/base-plugin/base.test.js.map +1 -0
- package/dist/base-plugin/fieldviews.d.ts +25 -0
- package/dist/base-plugin/fieldviews.d.ts.map +1 -0
- package/dist/base-plugin/fieldviews.js +159 -0
- package/dist/base-plugin/fieldviews.js.map +1 -0
- package/dist/base-plugin/fileviews.d.ts +52 -0
- package/dist/base-plugin/fileviews.d.ts.map +1 -0
- package/dist/base-plugin/fileviews.js +59 -0
- package/dist/base-plugin/fileviews.js.map +1 -0
- package/dist/base-plugin/index.d.ts +524 -0
- package/dist/base-plugin/index.d.ts.map +1 -0
- package/{base-plugin → dist/base-plugin}/index.js +22 -24
- package/dist/base-plugin/index.js.map +1 -0
- package/dist/base-plugin/types.d.ts +383 -0
- package/dist/base-plugin/types.d.ts.map +1 -0
- package/dist/base-plugin/types.js +1080 -0
- package/dist/base-plugin/types.js.map +1 -0
- package/dist/base-plugin/viewtemplates/edit.d.ts +116 -0
- package/dist/base-plugin/viewtemplates/edit.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/edit.js +561 -0
- package/dist/base-plugin/viewtemplates/edit.js.map +1 -0
- package/dist/base-plugin/viewtemplates/feed.d.ts +73 -0
- package/dist/base-plugin/viewtemplates/feed.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/feed.js +348 -0
- package/dist/base-plugin/viewtemplates/feed.js.map +1 -0
- package/dist/base-plugin/viewtemplates/filter.d.ts +46 -0
- package/dist/base-plugin/viewtemplates/filter.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/filter.js +267 -0
- package/dist/base-plugin/viewtemplates/filter.js.map +1 -0
- package/dist/base-plugin/viewtemplates/list.d.ts +99 -0
- package/dist/base-plugin/viewtemplates/list.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/list.js +471 -0
- package/dist/base-plugin/viewtemplates/list.js.map +1 -0
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts +41 -0
- package/dist/base-plugin/viewtemplates/listshowlist.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/listshowlist.js +248 -0
- package/dist/base-plugin/viewtemplates/listshowlist.js.map +1 -0
- package/dist/base-plugin/viewtemplates/room.d.ts +140 -0
- package/dist/base-plugin/viewtemplates/room.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/room.js +469 -0
- package/dist/base-plugin/viewtemplates/room.js.map +1 -0
- package/dist/base-plugin/viewtemplates/show.d.ts +101 -0
- package/dist/base-plugin/viewtemplates/show.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/show.js +562 -0
- package/dist/base-plugin/viewtemplates/show.js.map +1 -0
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts +108 -0
- package/dist/base-plugin/viewtemplates/viewable_fields.d.ts.map +1 -0
- package/dist/base-plugin/viewtemplates/viewable_fields.js +563 -0
- package/dist/base-plugin/viewtemplates/viewable_fields.js.map +1 -0
- package/dist/contracts.d.ts +49 -0
- package/dist/contracts.d.ts.map +1 -0
- package/dist/contracts.js +212 -0
- package/dist/contracts.js.map +1 -0
- package/dist/coverage/lcov-report/block-navigation.d.ts +2 -0
- package/dist/coverage/lcov-report/block-navigation.d.ts.map +1 -0
- package/dist/coverage/lcov-report/block-navigation.js +66 -0
- package/dist/coverage/lcov-report/block-navigation.js.map +1 -0
- package/dist/coverage/lcov-report/prettify.d.ts +1 -0
- package/dist/coverage/lcov-report/prettify.d.ts.map +1 -0
- package/dist/coverage/lcov-report/prettify.js +478 -0
- package/dist/coverage/lcov-report/prettify.js.map +1 -0
- package/dist/coverage/lcov-report/sorter.d.ts +2 -0
- package/dist/coverage/lcov-report/sorter.d.ts.map +1 -0
- package/dist/coverage/lcov-report/sorter.js +141 -0
- package/dist/coverage/lcov-report/sorter.js.map +1 -0
- package/dist/db/connect.d.ts +40 -0
- package/dist/db/connect.d.ts.map +1 -0
- package/dist/db/connect.js +150 -0
- package/dist/db/connect.js.map +1 -0
- package/dist/db/db.test.d.ts +2 -0
- package/dist/db/db.test.d.ts.map +1 -0
- package/dist/db/db.test.js +28 -0
- package/dist/db/db.test.js.map +1 -0
- package/dist/db/fixtures.d.ts +8 -0
- package/dist/db/fixtures.d.ts.map +1 -0
- package/dist/db/fixtures.js +300 -0
- package/dist/db/fixtures.js.map +1 -0
- package/dist/db/index.d.ts +3 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +41 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/reset_schema.d.ts +13 -0
- package/dist/db/reset_schema.d.ts.map +1 -0
- package/{db → dist/db}/reset_schema.js +45 -55
- package/dist/db/reset_schema.js.map +1 -0
- package/dist/db/state.d.ts +56 -0
- package/dist/db/state.d.ts.map +1 -0
- package/dist/db/state.js +608 -0
- package/dist/db/state.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/{index.js → dist/index.js} +2 -1
- package/dist/index.js.map +1 -0
- package/dist/migrate.d.ts +12 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +94 -0
- package/dist/migrate.js.map +1 -0
- package/dist/migrations/202005141503.d.ts +2 -0
- package/dist/migrations/202005141503.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202005141503.js +2 -1
- package/dist/migrations/202005141503.js.map +1 -0
- package/dist/migrations/202005241712.d.ts +2 -0
- package/dist/migrations/202005241712.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202005241712.js +2 -1
- package/dist/migrations/202005241712.js.map +1 -0
- package/dist/migrations/202005251037.d.ts +2 -0
- package/dist/migrations/202005251037.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202005251037.js +2 -1
- package/dist/migrations/202005251037.js.map +1 -0
- package/dist/migrations/202005282134.d.ts +2 -0
- package/dist/migrations/202005282134.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202005282134.js +2 -1
- package/dist/migrations/202005282134.js.map +1 -0
- package/dist/migrations/202006022156.d.ts +2 -0
- package/dist/migrations/202006022156.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202006022156.js +2 -1
- package/dist/migrations/202006022156.js.map +1 -0
- package/dist/migrations/202006051507.d.ts +2 -0
- package/dist/migrations/202006051507.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202006051507.js +2 -1
- package/dist/migrations/202006051507.js.map +1 -0
- package/dist/migrations/202006240906.d.ts +2 -0
- package/dist/migrations/202006240906.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202006240906.js +2 -1
- package/dist/migrations/202006240906.js.map +1 -0
- package/dist/migrations/202007091707.d.ts +2 -0
- package/dist/migrations/202007091707.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202007091707.js +2 -1
- package/dist/migrations/202007091707.js.map +1 -0
- package/dist/migrations/202007202144.d.ts +2 -0
- package/dist/migrations/202007202144.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202007202144.js +2 -1
- package/dist/migrations/202007202144.js.map +1 -0
- package/dist/migrations/202008031500.d.ts +2 -0
- package/dist/migrations/202008031500.d.ts.map +1 -0
- package/dist/migrations/202008031500.js +4 -0
- package/dist/migrations/202008031500.js.map +1 -0
- package/dist/migrations/202008051415.d.ts +2 -0
- package/dist/migrations/202008051415.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202008051415.js +2 -1
- package/dist/migrations/202008051415.js.map +1 -0
- package/dist/migrations/202008121149.d.ts +3 -0
- package/dist/migrations/202008121149.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202008121149.js +2 -2
- package/dist/migrations/202008121149.js.map +1 -0
- package/dist/migrations/202009112140.d.ts +3 -0
- package/dist/migrations/202009112140.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202009112140.js +2 -2
- package/dist/migrations/202009112140.js.map +1 -0
- package/dist/migrations/202009181655.d.ts +2 -0
- package/dist/migrations/202009181655.d.ts.map +1 -0
- package/dist/migrations/202009181655.js +7 -0
- package/dist/migrations/202009181655.js.map +1 -0
- package/dist/migrations/202009221105.d.ts +2 -0
- package/dist/migrations/202009221105.d.ts.map +1 -0
- package/dist/migrations/202009221105.js +4 -0
- package/dist/migrations/202009221105.js.map +1 -0
- package/dist/migrations/202009231331.d.ts +2 -0
- package/dist/migrations/202009231331.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202009231331.js +2 -1
- package/dist/migrations/202009231331.js.map +1 -0
- package/dist/migrations/202009301531.d.ts +2 -0
- package/dist/migrations/202009301531.d.ts.map +1 -0
- package/dist/migrations/202009301531.js +8 -0
- package/dist/migrations/202009301531.js.map +1 -0
- package/dist/migrations/202010231444.d.ts +2 -0
- package/dist/migrations/202010231444.d.ts.map +1 -0
- package/dist/migrations/202010231444.js +4 -0
- package/dist/migrations/202010231444.js.map +1 -0
- package/dist/migrations/202010251412.d.ts +2 -0
- package/dist/migrations/202010251412.d.ts.map +1 -0
- package/dist/migrations/202010251412.js +10 -0
- package/dist/migrations/202010251412.js.map +1 -0
- package/dist/migrations/202011021749.d.ts +2 -0
- package/dist/migrations/202011021749.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202011021749.js +2 -1
- package/dist/migrations/202011021749.js.map +1 -0
- package/dist/migrations/202011051353.d.ts +2 -0
- package/dist/migrations/202011051353.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202011051353.js +2 -1
- package/dist/migrations/202011051353.js.map +1 -0
- package/dist/migrations/202011111127.d.ts +2 -0
- package/dist/migrations/202011111127.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202011111127.js +2 -1
- package/dist/migrations/202011111127.js.map +1 -0
- package/dist/migrations/202012011203.d.ts +2 -0
- package/dist/migrations/202012011203.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202012011203.js +2 -1
- package/dist/migrations/202012011203.js.map +1 -0
- package/dist/migrations/202012100841.d.ts +2 -0
- package/dist/migrations/202012100841.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202012100841.js +2 -1
- package/dist/migrations/202012100841.js.map +1 -0
- package/dist/migrations/202012281835.d.ts +2 -0
- package/dist/migrations/202012281835.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202012281835.js +2 -1
- package/dist/migrations/202012281835.js.map +1 -0
- package/dist/migrations/202101061051.d.ts +2 -0
- package/dist/migrations/202101061051.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202101061051.js +2 -1
- package/dist/migrations/202101061051.js.map +1 -0
- package/dist/migrations/202101141128.d.ts +2 -0
- package/dist/migrations/202101141128.d.ts.map +1 -0
- package/dist/migrations/202101141128.js +4 -0
- package/dist/migrations/202101141128.js.map +1 -0
- package/dist/migrations/202102091312.d.ts +3 -0
- package/dist/migrations/202102091312.d.ts.map +1 -0
- package/dist/migrations/202102091312.js +19 -0
- package/dist/migrations/202102091312.js.map +1 -0
- package/dist/migrations/202102101624.d.ts +2 -0
- package/dist/migrations/202102101624.d.ts.map +1 -0
- package/dist/migrations/202102101624.js +7 -0
- package/dist/migrations/202102101624.js.map +1 -0
- package/dist/migrations/202102172148.d.ts +2 -0
- package/dist/migrations/202102172148.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202102172148.js +2 -2
- package/dist/migrations/202102172148.js.map +1 -0
- package/dist/migrations/202102261650.d.ts +2 -0
- package/dist/migrations/202102261650.d.ts.map +1 -0
- package/dist/migrations/202102261650.js +7 -0
- package/dist/migrations/202102261650.js.map +1 -0
- package/dist/migrations/202106102347.d.ts +2 -0
- package/dist/migrations/202106102347.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106102347.js +2 -3
- package/dist/migrations/202106102347.js.map +1 -0
- package/dist/migrations/202106112120.d.ts +2 -0
- package/dist/migrations/202106112120.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106112120.js +2 -3
- package/dist/migrations/202106112120.js.map +1 -0
- package/dist/migrations/202106120012.d.ts +2 -0
- package/dist/migrations/202106120012.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106120012.js +2 -3
- package/dist/migrations/202106120012.js.map +1 -0
- package/dist/migrations/202106120220.d.ts +2 -0
- package/dist/migrations/202106120220.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106120220.js +2 -4
- package/dist/migrations/202106120220.js.map +1 -0
- package/dist/migrations/202106121701.d.ts +2 -0
- package/dist/migrations/202106121701.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106121701.js +2 -3
- package/dist/migrations/202106121701.js.map +1 -0
- package/dist/migrations/202106121703.d.ts +3 -0
- package/dist/migrations/202106121703.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202106121703.js +2 -3
- package/dist/migrations/202106121703.js.map +1 -0
- package/dist/migrations/202106251126.d.ts +2 -0
- package/dist/migrations/202106251126.d.ts.map +1 -0
- package/dist/migrations/202106251126.js +6 -0
- package/dist/migrations/202106251126.js.map +1 -0
- package/dist/migrations/202107281619.d.ts +2 -0
- package/dist/migrations/202107281619.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202107281619.js +2 -1
- package/dist/migrations/202107281619.js.map +1 -0
- package/dist/migrations/202107302158.d.ts +3 -0
- package/dist/migrations/202107302158.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202107302158.js +2 -3
- package/dist/migrations/202107302158.js.map +1 -0
- package/dist/migrations/202108022257.d.ts +2 -0
- package/dist/migrations/202108022257.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202108022257.js +3 -4
- package/dist/migrations/202108022257.js.map +1 -0
- package/dist/migrations/202109201624.d.ts +2 -0
- package/dist/migrations/202109201624.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202109201624.js +2 -1
- package/dist/migrations/202109201624.js.map +1 -0
- package/dist/migrations/202109301031.d.ts +3 -0
- package/dist/migrations/202109301031.d.ts.map +1 -0
- package/{migrations → dist/migrations}/202109301031.js +2 -2
- package/dist/migrations/202109301031.js.map +1 -0
- package/dist/migrations/202111290253.d.ts +3 -0
- package/dist/migrations/202111290253.d.ts.map +1 -0
- package/dist/migrations/202111290253.js +5 -0
- package/dist/migrations/202111290253.js.map +1 -0
- package/dist/models/backup.d.ts +22 -0
- package/dist/models/backup.d.ts.map +1 -0
- package/{models → dist/models}/backup.js +95 -192
- package/dist/models/backup.js.map +1 -0
- package/dist/models/config.d.ts +177 -0
- package/dist/models/config.d.ts.map +1 -0
- package/dist/models/config.js +683 -0
- package/dist/models/config.js.map +1 -0
- package/dist/models/crash.d.ts +74 -0
- package/dist/models/crash.d.ts.map +1 -0
- package/dist/models/crash.js +118 -0
- package/dist/models/crash.js.map +1 -0
- package/dist/models/discovery.d.ts +28 -0
- package/dist/models/discovery.d.ts.map +1 -0
- package/dist/models/discovery.js +163 -0
- package/dist/models/discovery.js.map +1 -0
- package/dist/models/email.d.ts +16 -0
- package/dist/models/email.d.ts.map +1 -0
- package/dist/models/email.js +90 -0
- package/dist/models/email.js.map +1 -0
- package/dist/models/eventlog.d.ts +77 -0
- package/dist/models/eventlog.d.ts.map +1 -0
- package/dist/models/eventlog.js +132 -0
- package/dist/models/eventlog.js.map +1 -0
- package/dist/models/expression.d.ts +54 -0
- package/dist/models/expression.d.ts.map +1 -0
- package/dist/models/expression.js +274 -0
- package/dist/models/expression.js.map +1 -0
- package/dist/models/field.d.ts +217 -0
- package/dist/models/field.d.ts.map +1 -0
- package/dist/models/field.js +619 -0
- package/dist/models/field.js.map +1 -0
- package/dist/models/fieldrepeat.d.ts +49 -0
- package/dist/models/fieldrepeat.d.ts.map +1 -0
- package/dist/models/fieldrepeat.js +88 -0
- package/dist/models/fieldrepeat.js.map +1 -0
- package/dist/models/file.d.ts +122 -0
- package/dist/models/file.d.ts.map +1 -0
- package/dist/models/file.js +224 -0
- package/dist/models/file.js.map +1 -0
- package/dist/models/form.d.ts +82 -0
- package/dist/models/form.d.ts.map +1 -0
- package/dist/models/form.js +163 -0
- package/dist/models/form.js.map +1 -0
- package/dist/models/index.d.ts +1 -0
- package/dist/models/index.d.ts.map +1 -0
- package/{models → dist/models}/index.js +42 -42
- package/dist/models/index.js.map +1 -0
- package/dist/models/layout.d.ts +34 -0
- package/dist/models/layout.d.ts.map +1 -0
- package/dist/models/layout.js +153 -0
- package/dist/models/layout.js.map +1 -0
- package/dist/models/library.d.ts +50 -0
- package/dist/models/library.d.ts.map +1 -0
- package/dist/models/library.js +129 -0
- package/dist/models/library.js.map +1 -0
- package/dist/models/pack.d.ts +89 -0
- package/dist/models/pack.d.ts.map +1 -0
- package/dist/models/pack.js +383 -0
- package/dist/models/pack.js.map +1 -0
- package/dist/models/page.d.ts +101 -0
- package/dist/models/page.d.ts.map +1 -0
- package/dist/models/page.js +223 -0
- package/dist/models/page.js.map +1 -0
- package/dist/models/plugin.d.ts +100 -0
- package/dist/models/plugin.d.ts.map +1 -0
- package/dist/models/plugin.js +204 -0
- package/dist/models/plugin.js.map +1 -0
- package/dist/models/random.d.ts +24 -0
- package/dist/models/random.d.ts.map +1 -0
- package/dist/models/random.js +186 -0
- package/dist/models/random.js.map +1 -0
- package/dist/models/role.d.ts +42 -0
- package/dist/models/role.d.ts.map +1 -0
- package/dist/models/role.js +64 -0
- package/dist/models/role.js.map +1 -0
- package/dist/models/scheduler.d.ts +18 -0
- package/dist/models/scheduler.d.ts.map +1 -0
- package/dist/models/scheduler.js +159 -0
- package/dist/models/scheduler.js.map +1 -0
- package/dist/models/table.d.ts +326 -0
- package/dist/models/table.d.ts.map +1 -0
- package/dist/models/table.js +1006 -0
- package/dist/models/table.js.map +1 -0
- package/dist/models/table_constraints.d.ts +69 -0
- package/dist/models/table_constraints.d.ts.map +1 -0
- package/dist/models/table_constraints.js +118 -0
- package/dist/models/table_constraints.js.map +1 -0
- package/dist/models/tenant.d.ts +55 -0
- package/dist/models/tenant.d.ts.map +1 -0
- package/{models → dist/models}/tenant.js +40 -63
- package/dist/models/tenant.js.map +1 -0
- package/dist/models/trigger.d.ts +133 -0
- package/dist/models/trigger.d.ts.map +1 -0
- package/dist/models/trigger.js +292 -0
- package/dist/models/trigger.js.map +1 -0
- package/dist/models/user.d.ts +235 -0
- package/dist/models/user.d.ts.map +1 -0
- package/dist/models/user.js +434 -0
- package/dist/models/user.js.map +1 -0
- package/dist/models/view.d.ts +204 -0
- package/dist/models/view.d.ts.map +1 -0
- package/dist/models/view.js +497 -0
- package/dist/models/view.js.map +1 -0
- package/dist/models/workflow.d.ts +48 -0
- package/dist/models/workflow.d.ts.map +1 -0
- package/dist/models/workflow.js +190 -0
- package/dist/models/workflow.js.map +1 -0
- package/dist/plugin-helper.d.ts +145 -0
- package/dist/plugin-helper.d.ts.map +1 -0
- package/dist/plugin-helper.js +1158 -0
- package/dist/plugin-helper.js.map +1 -0
- package/dist/plugin-testing.d.ts +3 -0
- package/dist/plugin-testing.d.ts.map +1 -0
- package/dist/plugin-testing.js +120 -0
- package/dist/plugin-testing.js.map +1 -0
- package/dist/tests/actions.test.d.ts +2 -0
- package/dist/tests/actions.test.d.ts.map +1 -0
- package/dist/tests/actions.test.js +205 -0
- package/dist/tests/actions.test.js.map +1 -0
- package/dist/tests/auxtest.test.d.ts +2 -0
- package/dist/tests/auxtest.test.d.ts.map +1 -0
- package/dist/tests/auxtest.test.js +48 -0
- package/dist/tests/auxtest.test.js.map +1 -0
- package/dist/tests/backup.test.d.ts +2 -0
- package/dist/tests/backup.test.d.ts.map +1 -0
- package/dist/tests/backup.test.js +88 -0
- package/dist/tests/backup.test.js.map +1 -0
- package/dist/tests/calc.test.d.ts +2 -0
- package/dist/tests/calc.test.d.ts.map +1 -0
- package/dist/tests/calc.test.js +231 -0
- package/dist/tests/calc.test.js.map +1 -0
- package/dist/tests/config.test.d.ts +2 -0
- package/dist/tests/config.test.d.ts.map +1 -0
- package/dist/tests/config.test.js +83 -0
- package/dist/tests/config.test.js.map +1 -0
- package/dist/tests/discover.test.d.ts +2 -0
- package/dist/tests/discover.test.d.ts.map +1 -0
- package/dist/tests/discover.test.js +106 -0
- package/dist/tests/discover.test.js.map +1 -0
- package/dist/tests/exact_views.test.d.ts +2 -0
- package/dist/tests/exact_views.test.d.ts.map +1 -0
- package/dist/tests/exact_views.test.js +511 -0
- package/dist/tests/exact_views.test.js.map +1 -0
- package/dist/tests/field.test.d.ts +2 -0
- package/dist/tests/field.test.d.ts.map +1 -0
- package/dist/tests/field.test.js +237 -0
- package/dist/tests/field.test.js.map +1 -0
- package/dist/tests/form.test.d.ts +2 -0
- package/dist/tests/form.test.d.ts.map +1 -0
- package/dist/tests/form.test.js +191 -0
- package/dist/tests/form.test.js.map +1 -0
- package/dist/tests/mocks.d.ts +111 -0
- package/dist/tests/mocks.d.ts.map +1 -0
- package/dist/tests/mocks.js +165 -0
- package/dist/tests/mocks.js.map +1 -0
- package/dist/tests/models.test.d.ts +2 -0
- package/dist/tests/models.test.d.ts.map +1 -0
- package/dist/tests/models.test.js +210 -0
- package/dist/tests/models.test.js.map +1 -0
- package/dist/tests/pack.test.d.ts +2 -0
- package/dist/tests/pack.test.d.ts.map +1 -0
- package/dist/tests/pack.test.js +331 -0
- package/dist/tests/pack.test.js.map +1 -0
- package/dist/tests/plugin.test.d.ts +2 -0
- package/dist/tests/plugin.test.d.ts.map +1 -0
- package/dist/tests/plugin.test.js +53 -0
- package/dist/tests/plugin.test.js.map +1 -0
- package/dist/tests/random.test.d.ts +2 -0
- package/dist/tests/random.test.d.ts.map +1 -0
- package/dist/tests/random.test.js +138 -0
- package/dist/tests/random.test.js.map +1 -0
- package/dist/tests/table.test.d.ts +2 -0
- package/dist/tests/table.test.d.ts.map +1 -0
- package/dist/tests/table.test.js +1048 -0
- package/dist/tests/table.test.js.map +1 -0
- package/dist/tests/tenant.test.d.ts +2 -0
- package/dist/tests/tenant.test.d.ts.map +1 -0
- package/dist/tests/tenant.test.js +45 -0
- package/dist/tests/tenant.test.js.map +1 -0
- package/dist/tests/user.test.d.ts +2 -0
- package/dist/tests/user.test.d.ts.map +1 -0
- package/dist/tests/user.test.js +190 -0
- package/dist/tests/user.test.js.map +1 -0
- package/dist/tests/view.test.d.ts +2 -0
- package/dist/tests/view.test.d.ts.map +1 -0
- package/dist/tests/view.test.js +238 -0
- package/dist/tests/view.test.js.map +1 -0
- package/dist/tests/workflow.test.d.ts +2 -0
- package/dist/tests/workflow.test.d.ts.map +1 -0
- package/dist/tests/workflow.test.js +115 -0
- package/dist/tests/workflow.test.js.map +1 -0
- package/dist/tsconfig.ref.tsbuildinfo +1 -0
- package/dist/utils.d.ts +26 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +124 -0
- package/dist/utils.js.map +1 -0
- package/package.json +32 -8
- package/base-plugin/actions.js +0 -629
- package/base-plugin/base.test.js +0 -15
- package/base-plugin/fieldviews.js +0 -197
- package/base-plugin/fileviews.js +0 -65
- package/base-plugin/types.js +0 -1154
- package/base-plugin/viewtemplates/edit.js +0 -672
- package/base-plugin/viewtemplates/feed.js +0 -434
- package/base-plugin/viewtemplates/filter.js +0 -358
- package/base-plugin/viewtemplates/list.js +0 -575
- package/base-plugin/viewtemplates/listshowlist.js +0 -292
- package/base-plugin/viewtemplates/room.js +0 -652
- package/base-plugin/viewtemplates/show.js +0 -689
- package/base-plugin/viewtemplates/viewable_fields.js +0 -714
- package/contracts.js +0 -311
- package/db/connect.js +0 -151
- package/db/db.test.js +0 -33
- package/db/fixtures.js +0 -303
- package/db/index.js +0 -63
- package/db/state.js +0 -674
- package/migrate.js +0 -99
- package/migrations/202008031500.js +0 -4
- package/migrations/202009181655.js +0 -6
- package/migrations/202009221105.js +0 -4
- package/migrations/202009301531.js +0 -7
- package/migrations/202010231444.js +0 -4
- package/migrations/202010251412.js +0 -9
- package/migrations/202101141128.js +0 -4
- package/migrations/202102091312.js +0 -19
- package/migrations/202102101624.js +0 -5
- package/migrations/202102261650.js +0 -6
- package/migrations/202106251126.js +0 -5
- package/models/config.js +0 -680
- package/models/crash.js +0 -126
- package/models/discovery.js +0 -195
- package/models/email.js +0 -92
- package/models/eventlog.js +0 -146
- package/models/expression.js +0 -276
- package/models/field.js +0 -746
- package/models/fieldrepeat.js +0 -96
- package/models/file.js +0 -234
- package/models/form.js +0 -169
- package/models/layout.js +0 -146
- package/models/library.js +0 -135
- package/models/pack.js +0 -466
- package/models/page.js +0 -255
- package/models/plugin.js +0 -219
- package/models/random.js +0 -206
- package/models/role.js +0 -94
- package/models/scheduler.js +0 -163
- package/models/table.js +0 -1211
- package/models/table_constraints.js +0 -133
- package/models/trigger.js +0 -327
- package/models/user.js +0 -503
- package/models/view.js +0 -622
- package/models/workflow.js +0 -205
- package/plugin-helper.js +0 -1311
- package/plugin-testing.js +0 -124
- package/tests/actions.test.js +0 -232
- package/tests/auxtest.test.js +0 -52
- package/tests/backup.test.js +0 -92
- package/tests/calc.test.js +0 -243
- package/tests/config.test.js +0 -91
- package/tests/discover.test.js +0 -114
- package/tests/exact_views.test.js +0 -526
- package/tests/field.test.js +0 -253
- package/tests/form.test.js +0 -198
- package/tests/mocks.js +0 -173
- package/tests/models.test.js +0 -221
- package/tests/pack.test.js +0 -350
- package/tests/plugin.test.js +0 -59
- package/tests/random.test.js +0 -154
- package/tests/table.test.js +0 -1091
- package/tests/tenant.test.js +0 -56
- package/tests/user.test.js +0 -196
- package/tests/view.test.js +0 -251
- package/tests/workflow.test.js +0 -119
- package/utils.js +0 -137
package/models/crash.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Crash Database Access Layer
|
|
3
|
-
* @category saltcorn-data
|
|
4
|
-
* @module models/crash
|
|
5
|
-
* @subcategory models
|
|
6
|
-
*/
|
|
7
|
-
const db = require("../db");
|
|
8
|
-
const moment = require("moment");
|
|
9
|
-
const { contract, is } = require("contractis");
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Crash Class
|
|
13
|
-
* @category saltcorn-data
|
|
14
|
-
*/
|
|
15
|
-
class Crash {
|
|
16
|
-
/**
|
|
17
|
-
* Crash constructor
|
|
18
|
-
* @param {object} o
|
|
19
|
-
*/
|
|
20
|
-
constructor(o) {
|
|
21
|
-
this.id = o.id;
|
|
22
|
-
this.stack = o.stack;
|
|
23
|
-
this.message = o.message;
|
|
24
|
-
this.occur_at = ["string", "number"].includes(typeof o.occur_at)
|
|
25
|
-
? new Date(o.occur_at)
|
|
26
|
-
: o.occur_at;
|
|
27
|
-
this.tenant = o.tenant;
|
|
28
|
-
this.user_id = o.user_id;
|
|
29
|
-
this.body = o.body;
|
|
30
|
-
this.url = o.url;
|
|
31
|
-
this.headers =
|
|
32
|
-
typeof o.headers === "string" ? JSON.parse(o.headers) : o.headers;
|
|
33
|
-
contract.class(this);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* @param {object} where
|
|
38
|
-
* @param {object} selopts
|
|
39
|
-
* @returns {Promise<Crash[]>}
|
|
40
|
-
*/
|
|
41
|
-
static async find(where, selopts) {
|
|
42
|
-
const us = await db.select("_sc_errors", where, selopts);
|
|
43
|
-
return us.map((u) => new Crash(u));
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* @param {object} where
|
|
48
|
-
* @returns {Promise<Crash>}
|
|
49
|
-
*/
|
|
50
|
-
static async findOne(where) {
|
|
51
|
-
const u = await db.selectOne("_sc_errors", where);
|
|
52
|
-
return new Crash(u);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* @type {string}
|
|
57
|
-
*/
|
|
58
|
-
get reltime() {
|
|
59
|
-
return moment(this.occur_at).fromNow();
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* @param {object} where
|
|
64
|
-
* @returns {Promise<number>}
|
|
65
|
-
*/
|
|
66
|
-
static async count(where) {
|
|
67
|
-
return await db.count("_sc_errors", where || {});
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* @type {string}
|
|
72
|
-
*/
|
|
73
|
-
get msg_short() {
|
|
74
|
-
return this.message.length > 90
|
|
75
|
-
? this.message.substring(0, 90)
|
|
76
|
-
: this.message;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* @param {object} err
|
|
81
|
-
* @param {object} [req = {}]
|
|
82
|
-
* @returns {Promise<void>}
|
|
83
|
-
*/
|
|
84
|
-
static async create(err, req = {}) {
|
|
85
|
-
const schema = db.getTenantSchema();
|
|
86
|
-
const payload = {
|
|
87
|
-
stack: err.stack,
|
|
88
|
-
message: err.message,
|
|
89
|
-
occur_at: new Date(),
|
|
90
|
-
tenant: schema,
|
|
91
|
-
user_id: req.user ? req.user.id : null,
|
|
92
|
-
body: req.body ? { body: req.body } : null,
|
|
93
|
-
url: req.url,
|
|
94
|
-
headers: req.headers,
|
|
95
|
-
};
|
|
96
|
-
await db.runWithTenant(db.connectObj.default_schema, async () => {
|
|
97
|
-
await db.insert("_sc_errors", payload);
|
|
98
|
-
});
|
|
99
|
-
const Trigger = require("./trigger");
|
|
100
|
-
|
|
101
|
-
Trigger.emitEvent("Error", null, req.user, payload);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
Crash.contract = {
|
|
106
|
-
variables: {
|
|
107
|
-
id: is.maybe(is.posint),
|
|
108
|
-
user_id: is.maybe(is.posint),
|
|
109
|
-
stack: is.str,
|
|
110
|
-
message: is.str,
|
|
111
|
-
tenant: is.str,
|
|
112
|
-
url: is.str,
|
|
113
|
-
occur_at: is.class("Date"),
|
|
114
|
-
headers: is.obj(),
|
|
115
|
-
},
|
|
116
|
-
methods: {
|
|
117
|
-
reltime: is.getter(is.str),
|
|
118
|
-
},
|
|
119
|
-
static_methods: {
|
|
120
|
-
find: is.fun(is.obj(), is.promise(is.array(is.class("Crash")))),
|
|
121
|
-
findOne: is.fun(is.obj(), is.promise(is.class("Crash"))),
|
|
122
|
-
create: is.fun([is.obj(), is.obj()], is.promise(is.any)),
|
|
123
|
-
},
|
|
124
|
-
};
|
|
125
|
-
|
|
126
|
-
module.exports = Crash;
|
package/models/discovery.js
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DB Tables discovery to Saltcorn tables.
|
|
3
|
-
* @category saltcorn-data
|
|
4
|
-
* @module models/discovery
|
|
5
|
-
* @subcategory models
|
|
6
|
-
*/
|
|
7
|
-
const db = require("../db");
|
|
8
|
-
const { getState } = require("../db/state");
|
|
9
|
-
const { available_languages } = require("./config");
|
|
10
|
-
const Table = require("./table");
|
|
11
|
-
|
|
12
|
-
// create table discmetable(id serial primary key, name text, age integer not null); ALTER TABLE discmetable OWNER TO tomn;
|
|
13
|
-
/**
|
|
14
|
-
* List of discoverable tables.
|
|
15
|
-
* Returns all tables that can be imported to Saltcorn from current tenant database schema.
|
|
16
|
-
* The tables with name started with "_sc_" and tables imported to Saltcorn are ignored.
|
|
17
|
-
* @param {string} schema0 - current tenant db schema
|
|
18
|
-
* @returns {Promise<object[]>} all tables that can be imported to Saltcorn from current tenant database schema
|
|
19
|
-
*/
|
|
20
|
-
const discoverable_tables = async (schema0) => {
|
|
21
|
-
const schema = schema0 || db.getTenantSchema();
|
|
22
|
-
const {
|
|
23
|
-
rows,
|
|
24
|
-
} = await db.query(
|
|
25
|
-
"select * from information_schema.tables where table_schema=$1 order by table_name",
|
|
26
|
-
[schema]
|
|
27
|
-
);
|
|
28
|
-
const myTables = await Table.find({});
|
|
29
|
-
const myTableNames = myTables.map((t) => t.name);
|
|
30
|
-
const discoverable = rows.filter(
|
|
31
|
-
(t) =>
|
|
32
|
-
!(myTableNames.includes(t.table_name) || t.table_name.startsWith("_sc_"))
|
|
33
|
-
);
|
|
34
|
-
return discoverable;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* List all views in current tenant db schema
|
|
38
|
-
* @param {string} schema0 - current tenant db schema
|
|
39
|
-
* @returns {Promise<object[]>} Return list of views
|
|
40
|
-
*/
|
|
41
|
-
const get_existing_views = async (schema0) => {
|
|
42
|
-
const schema = schema0 || db.getTenantSchema();
|
|
43
|
-
const {
|
|
44
|
-
rows,
|
|
45
|
-
} = await db.query(
|
|
46
|
-
"select * from information_schema.views where table_schema=$1",
|
|
47
|
-
[schema]
|
|
48
|
-
);
|
|
49
|
-
return rows;
|
|
50
|
-
};
|
|
51
|
-
/**
|
|
52
|
-
* Mapping SQL Type to Saltcorn type
|
|
53
|
-
* @param {string} sql_name - SQL type name
|
|
54
|
-
* @returns {string|void} return Saltcorn type
|
|
55
|
-
*/
|
|
56
|
-
const findType = (sql_name) => {
|
|
57
|
-
const fixed = {
|
|
58
|
-
integer: "Integer",
|
|
59
|
-
smallint: "Integer",
|
|
60
|
-
bigint: "Integer",
|
|
61
|
-
numeric: "Float", // required pres
|
|
62
|
-
character: "String", // char - if length is not defined is 1 else length needs to be defined
|
|
63
|
-
"character varying": "String", // varchar - this type can have length
|
|
64
|
-
//varchar: "String",
|
|
65
|
-
date: "Date"
|
|
66
|
-
// TBD Implement time type in Saltcorn
|
|
67
|
-
// "time without time zone": "Date",
|
|
68
|
-
// TBD Implement timestamp type in Saltcorn
|
|
69
|
-
// "timestamp without time zone": "Date",
|
|
70
|
-
// TBD Implement time interval in Saltcorn
|
|
71
|
-
// interval: "Date"
|
|
72
|
-
}[sql_name];
|
|
73
|
-
if (fixed) return fixed;
|
|
74
|
-
const t = Object.entries(getState().types).find(
|
|
75
|
-
([k, v]) => v.sql_name === sql_name
|
|
76
|
-
);
|
|
77
|
-
if (t) {
|
|
78
|
-
return t[0];
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* Discover tables definitions
|
|
83
|
-
* @param {string[]} tableNames - list of table names
|
|
84
|
-
* @param {string} schema0 - db schema
|
|
85
|
-
* @returns {Promise<object>}
|
|
86
|
-
*/
|
|
87
|
-
const discover_tables = async (tableNames, schema0) => {
|
|
88
|
-
const schema = schema0 || db.getTenantSchema();
|
|
89
|
-
const packTables = [];
|
|
90
|
-
|
|
91
|
-
for (const tnm of tableNames) {
|
|
92
|
-
const {
|
|
93
|
-
rows,
|
|
94
|
-
} = await db.query(
|
|
95
|
-
"select * from information_schema.columns where table_schema=$1 and table_name=$2",
|
|
96
|
-
[schema, tnm]
|
|
97
|
-
);
|
|
98
|
-
// TBD add logic about column length, scale, etc
|
|
99
|
-
const fields = rows
|
|
100
|
-
.map((c) => ({
|
|
101
|
-
name: c.column_name,
|
|
102
|
-
label: c.column_name,
|
|
103
|
-
type: findType(c.data_type),
|
|
104
|
-
required: c.is_nullable === "NO",
|
|
105
|
-
}))
|
|
106
|
-
.filter((f) => f.type);
|
|
107
|
-
|
|
108
|
-
// try to find column name for primary key of table
|
|
109
|
-
const pkq = await db.query(
|
|
110
|
-
`SELECT c.column_name
|
|
111
|
-
FROM information_schema.table_constraints tc
|
|
112
|
-
JOIN information_schema.constraint_column_usage AS ccu USING (constraint_schema, constraint_name)
|
|
113
|
-
JOIN information_schema.columns AS c ON c.table_schema = tc.constraint_schema
|
|
114
|
-
AND tc.table_name = c.table_name AND ccu.column_name = c.column_name
|
|
115
|
-
WHERE constraint_type = 'PRIMARY KEY' and tc.table_schema=$1 and tc.table_name = $2;`,
|
|
116
|
-
[schema, tnm]
|
|
117
|
-
);
|
|
118
|
-
// set primary_key and unique attributes for column
|
|
119
|
-
pkq.rows.forEach(({ column_name }) => {
|
|
120
|
-
const field = fields.find((f) => f.name === column_name);
|
|
121
|
-
field.primary_key = true;
|
|
122
|
-
field.is_unique = true;
|
|
123
|
-
});
|
|
124
|
-
// try to find foreign keys
|
|
125
|
-
const fkq = await db.query(
|
|
126
|
-
`SELECT
|
|
127
|
-
tc.table_schema,
|
|
128
|
-
tc.constraint_name,
|
|
129
|
-
tc.table_name,
|
|
130
|
-
kcu.column_name,
|
|
131
|
-
ccu.table_schema AS foreign_table_schema,
|
|
132
|
-
ccu.table_name AS foreign_table_name,
|
|
133
|
-
ccu.column_name AS foreign_column_name
|
|
134
|
-
FROM
|
|
135
|
-
information_schema.table_constraints AS tc
|
|
136
|
-
JOIN information_schema.key_column_usage AS kcu
|
|
137
|
-
ON tc.constraint_name = kcu.constraint_name
|
|
138
|
-
AND tc.table_schema = kcu.table_schema
|
|
139
|
-
JOIN information_schema.constraint_column_usage AS ccu
|
|
140
|
-
ON ccu.constraint_name = tc.constraint_name
|
|
141
|
-
AND ccu.table_schema = tc.table_schema
|
|
142
|
-
WHERE tc.constraint_type = 'FOREIGN KEY' and tc.table_schema=$1 AND tc.table_name=$2;`,
|
|
143
|
-
[schema, tnm]
|
|
144
|
-
);
|
|
145
|
-
// construct foreign key relations
|
|
146
|
-
fkq.rows.forEach(
|
|
147
|
-
({ column_name, foreign_table_name, foreign_column_name }) => {
|
|
148
|
-
const field = fields.find((f) => f.name === column_name);
|
|
149
|
-
field.type = "Key";
|
|
150
|
-
field.reftable_name = foreign_table_name;
|
|
151
|
-
field.refname = foreign_column_name;
|
|
152
|
-
}
|
|
153
|
-
);
|
|
154
|
-
|
|
155
|
-
packTables.push({ name: tnm, fields, min_role_read: 1, min_role_write: 1 });
|
|
156
|
-
}
|
|
157
|
-
packTables.forEach((t) => {
|
|
158
|
-
t.fields.forEach((f) => {
|
|
159
|
-
if (f.type === "Key") {
|
|
160
|
-
const reftable = packTables.find(
|
|
161
|
-
(reft) => reft.name === f.reftable_name
|
|
162
|
-
);
|
|
163
|
-
const refpk = reftable.fields.find((rtf) => rtf.primary_key);
|
|
164
|
-
f.reftype = refpk.type;
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
return { tables: packTables };
|
|
169
|
-
};
|
|
170
|
-
/**
|
|
171
|
-
* Add discovered tables to Saltcorn
|
|
172
|
-
* @param {object} pack - table definition
|
|
173
|
-
* @returns {Promise<void>}
|
|
174
|
-
*/
|
|
175
|
-
const implement_discovery = async (pack) => {
|
|
176
|
-
for (const table of pack.tables) {
|
|
177
|
-
const { fields, ...tblRow } = table;
|
|
178
|
-
const id = await db.insert("_sc_tables", tblRow);
|
|
179
|
-
table.id = id;
|
|
180
|
-
}
|
|
181
|
-
for (const table of pack.tables) {
|
|
182
|
-
for (const field of table.fields) {
|
|
183
|
-
await db.insert("_sc_fields", { ...field, table_id: table.id });
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
// refresh Saltcorn table list (in memory)
|
|
187
|
-
await require("../db/state").getState().refresh_tables();
|
|
188
|
-
|
|
189
|
-
};
|
|
190
|
-
module.exports = {
|
|
191
|
-
discoverable_tables,
|
|
192
|
-
discover_tables,
|
|
193
|
-
implement_discovery,
|
|
194
|
-
get_existing_views,
|
|
195
|
-
};
|
package/models/email.js
DELETED
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category saltcorn-data
|
|
3
|
-
* @module models/email
|
|
4
|
-
* @subcategory models
|
|
5
|
-
*/
|
|
6
|
-
const nodemailer = require("nodemailer");
|
|
7
|
-
const { getState } = require("../db/state");
|
|
8
|
-
const BootstrapEmail = require("bootstrap-email");
|
|
9
|
-
const tmp = require("tmp-promise");
|
|
10
|
-
const fs = require("fs").promises;
|
|
11
|
-
const { div } = require("@saltcorn/markup/tags");
|
|
12
|
-
const View = require("./view");
|
|
13
|
-
const { v4: uuidv4 } = require("uuid");
|
|
14
|
-
const db = require("../db");
|
|
15
|
-
const { mockReqRes } = require("../tests/mocks");
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* @returns {Transporter}
|
|
19
|
-
*/
|
|
20
|
-
const getMailTransport = () => {
|
|
21
|
-
const port = getState().getConfig("smtp_port");
|
|
22
|
-
const secure = getState().getConfig("smtp_secure", port === 465);
|
|
23
|
-
return nodemailer.createTransport({
|
|
24
|
-
host: getState().getConfig("smtp_host"),
|
|
25
|
-
port,
|
|
26
|
-
secure,
|
|
27
|
-
auth: {
|
|
28
|
-
user: getState().getConfig("smtp_username"),
|
|
29
|
-
pass: getState().getConfig("smtp_password"),
|
|
30
|
-
},
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @param {object} bsHtml
|
|
36
|
-
* @returns {object}
|
|
37
|
-
*/
|
|
38
|
-
const transformBootstrapEmail = async (bsHtml) => {
|
|
39
|
-
const filename = await tmp.tmpName();
|
|
40
|
-
await fs.writeFile(filename, div({ class: "container" }, bsHtml));
|
|
41
|
-
|
|
42
|
-
const template = new BootstrapEmail(filename);
|
|
43
|
-
const email = template.compile();
|
|
44
|
-
await fs.unlink(filename);
|
|
45
|
-
return email;
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* @param {object} user
|
|
50
|
-
* @param {object} [req]
|
|
51
|
-
* @returns {Promise<object>}
|
|
52
|
-
*/
|
|
53
|
-
const send_verification_email = async (user, req) => {
|
|
54
|
-
const verification_view_name = getState().getConfig("verification_view");
|
|
55
|
-
if (verification_view_name) {
|
|
56
|
-
const verification_view = await View.findOne({
|
|
57
|
-
name: verification_view_name,
|
|
58
|
-
});
|
|
59
|
-
if (verification_view) {
|
|
60
|
-
const verification_token = uuidv4();
|
|
61
|
-
try {
|
|
62
|
-
await db.update("users", { verification_token }, user.id);
|
|
63
|
-
user.verification_token = verification_token;
|
|
64
|
-
const htmlBs = await verification_view.run({ id: user.id }, mockReqRes);
|
|
65
|
-
const html = await transformBootstrapEmail(htmlBs);
|
|
66
|
-
const email = {
|
|
67
|
-
from: getState().getConfig("email_from"),
|
|
68
|
-
to: user.email,
|
|
69
|
-
subject: "Please verify your email address",
|
|
70
|
-
html,
|
|
71
|
-
};
|
|
72
|
-
await getMailTransport().sendMail(email);
|
|
73
|
-
if (req)
|
|
74
|
-
req.flash(
|
|
75
|
-
"success",
|
|
76
|
-
req.__("An email has been sent to %s to verify your address", user.email)
|
|
77
|
-
);
|
|
78
|
-
return true;
|
|
79
|
-
} catch (e) {
|
|
80
|
-
return { error: e.message };
|
|
81
|
-
}
|
|
82
|
-
} else return { error: "Verification form specified but not found" };
|
|
83
|
-
} else {
|
|
84
|
-
return { error: "Verification form not specified" };
|
|
85
|
-
}
|
|
86
|
-
};
|
|
87
|
-
|
|
88
|
-
module.exports = {
|
|
89
|
-
getMailTransport,
|
|
90
|
-
transformBootstrapEmail,
|
|
91
|
-
send_verification_email,
|
|
92
|
-
};
|
package/models/eventlog.js
DELETED
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EventLog Database Access Layer
|
|
3
|
-
* @category saltcorn-data
|
|
4
|
-
* @module models/eventlog
|
|
5
|
-
* @subcategory models
|
|
6
|
-
*/
|
|
7
|
-
const db = require("../db");
|
|
8
|
-
const moment = require("moment");
|
|
9
|
-
|
|
10
|
-
const { contract, is } = require("contractis");
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* EventLog Class
|
|
14
|
-
* @category saltcorn-data
|
|
15
|
-
*/
|
|
16
|
-
class EventLog {
|
|
17
|
-
/**
|
|
18
|
-
* EventLog constructor
|
|
19
|
-
* @param {object} o
|
|
20
|
-
*/
|
|
21
|
-
constructor(o) {
|
|
22
|
-
this.id = o.id;
|
|
23
|
-
this.event_type = o.event_type;
|
|
24
|
-
this.channel = o.channel;
|
|
25
|
-
this.occur_at = ["string", "number"].includes(typeof o.occur_at)
|
|
26
|
-
? new Date(o.occur_at)
|
|
27
|
-
: o.occur_at;
|
|
28
|
-
this.user_id = o.user_id;
|
|
29
|
-
this.payload =
|
|
30
|
-
typeof o.payload === "string" ? JSON.parse(o.payload) : o.payload;
|
|
31
|
-
contract.class(this);
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* @param {object} where
|
|
36
|
-
* @param {object} selopts
|
|
37
|
-
* @returns {Promise<EventLog[]>}
|
|
38
|
-
*/
|
|
39
|
-
static async find(where, selopts) {
|
|
40
|
-
const us = await db.select("_sc_event_log", where, selopts);
|
|
41
|
-
return us.map((u) => new EventLog(u));
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* @param {object} where
|
|
46
|
-
* @returns {Promise<EventLog>}
|
|
47
|
-
*/
|
|
48
|
-
static async findOne(where) {
|
|
49
|
-
const u = await db.selectOne("_sc_event_log", where);
|
|
50
|
-
return new EventLog(u);
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* @param {string} id
|
|
55
|
-
* @returns {Promise<EventLog>}
|
|
56
|
-
*/
|
|
57
|
-
static async findOneWithUser(id) {
|
|
58
|
-
const {
|
|
59
|
-
rows,
|
|
60
|
-
} = await db.query(
|
|
61
|
-
"select el.*, u.email from _sc_event_log el left join users u on el.user_id = u.id where el.id = $1",
|
|
62
|
-
[id]
|
|
63
|
-
);
|
|
64
|
-
const u = rows[0];
|
|
65
|
-
const el = new EventLog(u);
|
|
66
|
-
el.email = u.email;
|
|
67
|
-
return el;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* @param {object} where
|
|
72
|
-
* @returns {Promise<number>}
|
|
73
|
-
*/
|
|
74
|
-
static async count(where) {
|
|
75
|
-
return await db.count("_sc_event_log", where || {});
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @type {string}
|
|
80
|
-
*/
|
|
81
|
-
get reltime() {
|
|
82
|
-
return moment(this.occur_at).fromNow();
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* @param {object} o
|
|
87
|
-
* @returns {Promise<EventLog>}
|
|
88
|
-
*/
|
|
89
|
-
static async create(o) {
|
|
90
|
-
const { getState } = require("../db/state");
|
|
91
|
-
|
|
92
|
-
const settings = getState().getConfig("event_log_settings", {});
|
|
93
|
-
if (!settings[o.event_type]) return;
|
|
94
|
-
const hasTable = EventLog.hasTable(o.event_type);
|
|
95
|
-
if (hasTable && !settings[`${o.event_type}_${o.channel}`]) return;
|
|
96
|
-
const hasChannel = EventLog.hasChannel(o.event_type);
|
|
97
|
-
if (hasChannel && settings[`${o.event_type}_channel`]) {
|
|
98
|
-
const wantChannels = settings[`${o.event_type}_channel`]
|
|
99
|
-
.split(",")
|
|
100
|
-
.map((s) => s.trim());
|
|
101
|
-
if (!wantChannels.includes(o.channel)) return;
|
|
102
|
-
}
|
|
103
|
-
const ev = new EventLog(o);
|
|
104
|
-
const { id, ...rest } = ev;
|
|
105
|
-
|
|
106
|
-
ev.id = await db.insert("_sc_event_log", rest);
|
|
107
|
-
return ev;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* @param {string} evType
|
|
112
|
-
* @returns {boolean}
|
|
113
|
-
*/
|
|
114
|
-
static hasTable(evType) {
|
|
115
|
-
return ["Insert", "Update", "Delete"].includes(evType);
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @param {string} evType
|
|
120
|
-
* @returns {boolean}
|
|
121
|
-
*/
|
|
122
|
-
static hasChannel(evType) {
|
|
123
|
-
const { getState } = require("../db/state");
|
|
124
|
-
const t = getState().eventTypes[evType];
|
|
125
|
-
return t && t.hasChannel;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
EventLog.contract = {
|
|
130
|
-
variables: {
|
|
131
|
-
id: is.maybe(is.posint),
|
|
132
|
-
event_type: is.str,
|
|
133
|
-
channel: is.maybe(is.str),
|
|
134
|
-
occur_at: is.class("Date"),
|
|
135
|
-
user_id: is.maybe(is.posint),
|
|
136
|
-
payload: is.maybe(is.obj()),
|
|
137
|
-
},
|
|
138
|
-
methods: {},
|
|
139
|
-
static_methods: {
|
|
140
|
-
find: is.fun(is.obj(), is.promise(is.array(is.class("EventLog")))),
|
|
141
|
-
findOne: is.fun(is.obj(), is.promise(is.class("EventLog"))),
|
|
142
|
-
create: is.fun(is.obj(), is.promise(is.any)),
|
|
143
|
-
},
|
|
144
|
-
};
|
|
145
|
-
|
|
146
|
-
module.exports = EventLog;
|