@takaro/db 0.0.0-next.09a7ca1
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/README.md +1 -0
- package/dist/TakaroModel.d.ts +16 -0
- package/dist/TakaroModel.d.ts.map +1 -0
- package/dist/TakaroModel.js +25 -0
- package/dist/TakaroModel.js.map +1 -0
- package/dist/config.d.ts +120 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +99 -0
- package/dist/config.js.map +1 -0
- package/dist/encryption.d.ts +5 -0
- package/dist/encryption.d.ts.map +1 -0
- package/dist/encryption.js +23 -0
- package/dist/encryption.js.map +1 -0
- package/dist/errorTypeGuards.d.ts +3 -0
- package/dist/errorTypeGuards.d.ts.map +1 -0
- package/dist/errorTypeGuards.js +11 -0
- package/dist/errorTypeGuards.js.map +1 -0
- package/dist/knex.d.ts +9 -0
- package/dist/knex.d.ts.map +1 -0
- package/dist/knex.js +50 -0
- package/dist/knex.js.map +1 -0
- package/dist/main.d.ts +9 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +9 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations/index.d.ts +3 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +59 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/sql/20220827191938_init.d.ts +4 -0
- package/dist/migrations/sql/20220827191938_init.d.ts.map +1 -0
- package/dist/migrations/sql/20220827191938_init.js +155 -0
- package/dist/migrations/sql/20220827191938_init.js.map +1 -0
- package/dist/migrations/sql/20221019173729_settings.d.ts +4 -0
- package/dist/migrations/sql/20221019173729_settings.d.ts.map +1 -0
- package/dist/migrations/sql/20221019173729_settings.js +61 -0
- package/dist/migrations/sql/20221019173729_settings.js.map +1 -0
- package/dist/migrations/sql/20221029103554_refactor_function_assignments.d.ts +4 -0
- package/dist/migrations/sql/20221029103554_refactor_function_assignments.d.ts.map +1 -0
- package/dist/migrations/sql/20221029103554_refactor_function_assignments.js +33 -0
- package/dist/migrations/sql/20221029103554_refactor_function_assignments.js.map +1 -0
- package/dist/migrations/sql/20221102190532_commands.d.ts +4 -0
- package/dist/migrations/sql/20221102190532_commands.d.ts.map +1 -0
- package/dist/migrations/sql/20221102190532_commands.js +58 -0
- package/dist/migrations/sql/20221102190532_commands.js.map +1 -0
- package/dist/migrations/sql/20221203135001-builtin_modules.d.ts +4 -0
- package/dist/migrations/sql/20221203135001-builtin_modules.d.ts.map +1 -0
- package/dist/migrations/sql/20221203135001-builtin_modules.js +44 -0
- package/dist/migrations/sql/20221203135001-builtin_modules.js.map +1 -0
- package/dist/migrations/sql/20230308183400-persistent-variables.d.ts +4 -0
- package/dist/migrations/sql/20230308183400-persistent-variables.d.ts.map +1 -0
- package/dist/migrations/sql/20230308183400-persistent-variables.js +63 -0
- package/dist/migrations/sql/20230308183400-persistent-variables.js.map +1 -0
- package/dist/migrations/sql/20230314183400-auth-ory.d.ts +4 -0
- package/dist/migrations/sql/20230314183400-auth-ory.d.ts.map +1 -0
- package/dist/migrations/sql/20230314183400-auth-ory.js +23 -0
- package/dist/migrations/sql/20230314183400-auth-ory.js.map +1 -0
- package/dist/migrations/sql/20230325156123_command-arguments.d.ts +4 -0
- package/dist/migrations/sql/20230325156123_command-arguments.d.ts.map +1 -0
- package/dist/migrations/sql/20230325156123_command-arguments.js +19 -0
- package/dist/migrations/sql/20230325156123_command-arguments.js.map +1 -0
- package/dist/migrations/sql/20230407132022-module-descriptions.d.ts +4 -0
- package/dist/migrations/sql/20230407132022-module-descriptions.d.ts.map +1 -0
- package/dist/migrations/sql/20230407132022-module-descriptions.js +11 -0
- package/dist/migrations/sql/20230407132022-module-descriptions.js.map +1 -0
- package/dist/migrations/sql/20230407143733-module-json-schema-config.d.ts +4 -0
- package/dist/migrations/sql/20230407143733-module-json-schema-config.d.ts.map +1 -0
- package/dist/migrations/sql/20230407143733-module-json-schema-config.js +14 -0
- package/dist/migrations/sql/20230407143733-module-json-schema-config.js.map +1 -0
- package/dist/migrations/sql/20230407173055-hook-regex-optional.d.ts +4 -0
- package/dist/migrations/sql/20230407173055-hook-regex-optional.d.ts.map +1 -0
- package/dist/migrations/sql/20230407173055-hook-regex-optional.js +11 -0
- package/dist/migrations/sql/20230407173055-hook-regex-optional.js.map +1 -0
- package/dist/migrations/sql/20230415154935-cronjob-configs.d.ts +4 -0
- package/dist/migrations/sql/20230415154935-cronjob-configs.d.ts.map +1 -0
- package/dist/migrations/sql/20230415154935-cronjob-configs.js +16 -0
- package/dist/migrations/sql/20230415154935-cronjob-configs.js.map +1 -0
- package/dist/migrations/sql/20230503132906-variables-extra-meta.d.ts +4 -0
- package/dist/migrations/sql/20230503132906-variables-extra-meta.d.ts.map +1 -0
- package/dist/migrations/sql/20230503132906-variables-extra-meta.js +26 -0
- package/dist/migrations/sql/20230503132906-variables-extra-meta.js.map +1 -0
- package/dist/migrations/sql/20230604130951-fix-hook-eventtypes.d.ts +4 -0
- package/dist/migrations/sql/20230604130951-fix-hook-eventtypes.d.ts.map +1 -0
- package/dist/migrations/sql/20230604130951-fix-hook-eventtypes.js +8 -0
- package/dist/migrations/sql/20230604130951-fix-hook-eventtypes.js.map +1 -0
- package/dist/migrations/sql/20230617081049-discordId-for-users.d.ts +4 -0
- package/dist/migrations/sql/20230617081049-discordId-for-users.d.ts.map +1 -0
- package/dist/migrations/sql/20230617081049-discordId-for-users.js +14 -0
- package/dist/migrations/sql/20230617081049-discordId-for-users.js.map +1 -0
- package/dist/migrations/sql/20230618053611-discord-funtionality.d.ts +4 -0
- package/dist/migrations/sql/20230618053611-discord-funtionality.d.ts.map +1 -0
- package/dist/migrations/sql/20230618053611-discord-funtionality.js +26 -0
- package/dist/migrations/sql/20230618053611-discord-funtionality.js.map +1 -0
- package/dist/migrations/sql/20230622192402-discord-hooks.d.ts +4 -0
- package/dist/migrations/sql/20230622192402-discord-hooks.d.ts.map +1 -0
- package/dist/migrations/sql/20230622192402-discord-hooks.js +14 -0
- package/dist/migrations/sql/20230622192402-discord-hooks.js.map +1 -0
- package/dist/migrations/sql/20230707081218-playerOnGameServerExtension.d.ts +4 -0
- package/dist/migrations/sql/20230707081218-playerOnGameServerExtension.d.ts.map +1 -0
- package/dist/migrations/sql/20230707081218-playerOnGameServerExtension.js +19 -0
- package/dist/migrations/sql/20230707081218-playerOnGameServerExtension.js.map +1 -0
- package/dist/migrations/sql/20230710174340-events.d.ts +4 -0
- package/dist/migrations/sql/20230710174340-events.d.ts.map +1 -0
- package/dist/migrations/sql/20230710174340-events.js +16 -0
- package/dist/migrations/sql/20230710174340-events.js.map +1 -0
- package/dist/migrations/sql/20230712061220-roles-permissions-extension.d.ts +4 -0
- package/dist/migrations/sql/20230712061220-roles-permissions-extension.d.ts.map +1 -0
- package/dist/migrations/sql/20230712061220-roles-permissions-extension.js +43 -0
- package/dist/migrations/sql/20230712061220-roles-permissions-extension.js.map +1 -0
- package/dist/migrations/sql/20230713184927-variables-modulescoped.d.ts +4 -0
- package/dist/migrations/sql/20230713184927-variables-modulescoped.d.ts.map +1 -0
- package/dist/migrations/sql/20230713184927-variables-modulescoped.js +27 -0
- package/dist/migrations/sql/20230713184927-variables-modulescoped.js.map +1 -0
- package/dist/migrations/sql/20230714045136-domain-index.d.ts +4 -0
- package/dist/migrations/sql/20230714045136-domain-index.d.ts.map +1 -0
- package/dist/migrations/sql/20230714045136-domain-index.js +37 -0
- package/dist/migrations/sql/20230714045136-domain-index.js.map +1 -0
- package/dist/migrations/sql/20230714045727-events-index.d.ts +4 -0
- package/dist/migrations/sql/20230714045727-events-index.d.ts.map +1 -0
- package/dist/migrations/sql/20230714045727-events-index.js +17 -0
- package/dist/migrations/sql/20230714045727-events-index.js.map +1 -0
- package/dist/migrations/sql/20230715102519-module-permissions-extra-fields.d.ts +4 -0
- package/dist/migrations/sql/20230715102519-module-permissions-extra-fields.d.ts.map +1 -0
- package/dist/migrations/sql/20230715102519-module-permissions-extra-fields.js +32 -0
- package/dist/migrations/sql/20230715102519-module-permissions-extra-fields.js.map +1 -0
- package/dist/migrations/sql/20230724062109-roles-constraints.d.ts +4 -0
- package/dist/migrations/sql/20230724062109-roles-constraints.d.ts.map +1 -0
- package/dist/migrations/sql/20230724062109-roles-constraints.js +14 -0
- package/dist/migrations/sql/20230724062109-roles-constraints.js.map +1 -0
- package/dist/migrations/sql/20230811095701-userId-on-events.d.ts +4 -0
- package/dist/migrations/sql/20230811095701-userId-on-events.d.ts.map +1 -0
- package/dist/migrations/sql/20230811095701-userId-on-events.js +12 -0
- package/dist/migrations/sql/20230811095701-userId-on-events.js.map +1 -0
- package/dist/migrations/sql/20230921123717-count-for-permissions.d.ts +4 -0
- package/dist/migrations/sql/20230921123717-count-for-permissions.d.ts.map +1 -0
- package/dist/migrations/sql/20230921123717-count-for-permissions.js +84 -0
- package/dist/migrations/sql/20230921123717-count-for-permissions.js.map +1 -0
- package/dist/migrations/sql/20231111102812-details-system-permissions.d.ts +37 -0
- package/dist/migrations/sql/20231111102812-details-system-permissions.d.ts.map +1 -0
- package/dist/migrations/sql/20231111102812-details-system-permissions.js +179 -0
- package/dist/migrations/sql/20231111102812-details-system-permissions.js.map +1 -0
- package/dist/migrations/sql/20231114151343-system-roles.d.ts +4 -0
- package/dist/migrations/sql/20231114151343-system-roles.d.ts.map +1 -0
- package/dist/migrations/sql/20231114151343-system-roles.js +41 -0
- package/dist/migrations/sql/20231114151343-system-roles.js.map +1 -0
- package/dist/migrations/sql/20231118082301-add-new-permissions.d.ts +37 -0
- package/dist/migrations/sql/20231118082301-add-new-permissions.d.ts.map +1 -0
- package/dist/migrations/sql/20231118082301-add-new-permissions.js +186 -0
- package/dist/migrations/sql/20231118082301-add-new-permissions.js.map +1 -0
- package/dist/migrations/sql/20231119115037-timedRoles.d.ts +4 -0
- package/dist/migrations/sql/20231119115037-timedRoles.d.ts.map +1 -0
- package/dist/migrations/sql/20231119115037-timedRoles.js +19 -0
- package/dist/migrations/sql/20231119115037-timedRoles.js.map +1 -0
- package/dist/migrations/sql/20231123150854-economy-base.d.ts +4 -0
- package/dist/migrations/sql/20231123150854-economy-base.d.ts.map +1 -0
- package/dist/migrations/sql/20231123150854-economy-base.js +13 -0
- package/dist/migrations/sql/20231123150854-economy-base.js.map +1 -0
- package/dist/migrations/sql/20231123171611-economy-settings.d.ts +4 -0
- package/dist/migrations/sql/20231123171611-economy-settings.d.ts.map +1 -0
- package/dist/migrations/sql/20231123171611-economy-settings.js +13 -0
- package/dist/migrations/sql/20231123171611-economy-settings.js.map +1 -0
- package/dist/migrations/sql/20231124140441-json-module-assignments.d.ts +4 -0
- package/dist/migrations/sql/20231124140441-json-module-assignments.d.ts.map +1 -0
- package/dist/migrations/sql/20231124140441-json-module-assignments.js +25 -0
- package/dist/migrations/sql/20231124140441-json-module-assignments.js.map +1 -0
- package/dist/migrations/sql/20231208114507-settings-refactor.d.ts +4 -0
- package/dist/migrations/sql/20231208114507-settings-refactor.d.ts.map +1 -0
- package/dist/migrations/sql/20231208114507-settings-refactor.js +95 -0
- package/dist/migrations/sql/20231208114507-settings-refactor.js.map +1 -0
- package/dist/migrations/sql/20231208171234-game-items.d.ts +4 -0
- package/dist/migrations/sql/20231208171234-game-items.d.ts.map +1 -0
- package/dist/migrations/sql/20231208171234-game-items.js +18 -0
- package/dist/migrations/sql/20231208171234-game-items.js.map +1 -0
- package/dist/migrations/sql/20231216100720-player-inventory.d.ts +4 -0
- package/dist/migrations/sql/20231216100720-player-inventory.d.ts.map +1 -0
- package/dist/migrations/sql/20231216100720-player-inventory.js +14 -0
- package/dist/migrations/sql/20231216100720-player-inventory.js.map +1 -0
- package/dist/migrations/sql/20231222180438-steam-data.d.ts +4 -0
- package/dist/migrations/sql/20231222180438-steam-data.d.ts.map +1 -0
- package/dist/migrations/sql/20231222180438-steam-data.js +25 -0
- package/dist/migrations/sql/20231222180438-steam-data.js.map +1 -0
- package/dist/migrations/sql/20231223132631-pog-online.d.ts +4 -0
- package/dist/migrations/sql/20231223132631-pog-online.d.ts.map +1 -0
- package/dist/migrations/sql/20231223132631-pog-online.js +11 -0
- package/dist/migrations/sql/20231223132631-pog-online.js.map +1 -0
- package/dist/migrations/sql/20231223212031-unique-index-item-def.d.ts +4 -0
- package/dist/migrations/sql/20231223212031-unique-index-item-def.d.ts.map +1 -0
- package/dist/migrations/sql/20231223212031-unique-index-item-def.js +24 -0
- package/dist/migrations/sql/20231223212031-unique-index-item-def.js.map +1 -0
- package/dist/migrations/sql/20231224135126-gameserver-online-status.d.ts +4 -0
- package/dist/migrations/sql/20231224135126-gameserver-online-status.d.ts.map +1 -0
- package/dist/migrations/sql/20231224135126-gameserver-online-status.js +11 -0
- package/dist/migrations/sql/20231224135126-gameserver-online-status.js.map +1 -0
- package/dist/migrations/sql/20231224155226-unique-pog.d.ts +4 -0
- package/dist/migrations/sql/20231224155226-unique-pog.d.ts.map +1 -0
- package/dist/migrations/sql/20231224155226-unique-pog.js +24 -0
- package/dist/migrations/sql/20231224155226-unique-pog.js.map +1 -0
- package/dist/migrations/sql/20231225140650-extra-ip-info.d.ts +4 -0
- package/dist/migrations/sql/20231225140650-extra-ip-info.d.ts.map +1 -0
- package/dist/migrations/sql/20231225140650-extra-ip-info.js +23 -0
- package/dist/migrations/sql/20231225140650-extra-ip-info.js.map +1 -0
- package/dist/migrations/sql/20231227144315-unique-constraints-player.d.ts +4 -0
- package/dist/migrations/sql/20231227144315-unique-constraints-player.d.ts.map +1 -0
- package/dist/migrations/sql/20231227144315-unique-constraints-player.js +67 -0
- package/dist/migrations/sql/20231227144315-unique-constraints-player.js.map +1 -0
- package/dist/migrations/sql/20231229144707-more-player-constraints.d.ts +4 -0
- package/dist/migrations/sql/20231229144707-more-player-constraints.d.ts.map +1 -0
- package/dist/migrations/sql/20231229144707-more-player-constraints.js +17 -0
- package/dist/migrations/sql/20231229144707-more-player-constraints.js.map +1 -0
- package/dist/migrations/sql/20240101162751-add-settings-constraint.d.ts +4 -0
- package/dist/migrations/sql/20240101162751-add-settings-constraint.d.ts.map +1 -0
- package/dist/migrations/sql/20240101162751-add-settings-constraint.js +34 -0
- package/dist/migrations/sql/20240101162751-add-settings-constraint.js.map +1 -0
- package/dist/migrations/sql/20240105130846-remove-some-module-perms.d.ts +4 -0
- package/dist/migrations/sql/20240105130846-remove-some-module-perms.d.ts.map +1 -0
- package/dist/migrations/sql/20240105130846-remove-some-module-perms.js +80 -0
- package/dist/migrations/sql/20240105130846-remove-some-module-perms.js.map +1 -0
- package/dist/migrations/sql/20240116141936-add-ui-schema-to-module.d.ts +4 -0
- package/dist/migrations/sql/20240116141936-add-ui-schema-to-module.d.ts.map +1 -0
- package/dist/migrations/sql/20240116141936-add-ui-schema-to-module.js +11 -0
- package/dist/migrations/sql/20240116141936-add-ui-schema-to-module.js.map +1 -0
- package/dist/migrations/sql/20240119152426-remove-hook-check.d.ts +4 -0
- package/dist/migrations/sql/20240119152426-remove-hook-check.d.ts.map +1 -0
- package/dist/migrations/sql/20240119152426-remove-hook-check.js +14 -0
- package/dist/migrations/sql/20240119152426-remove-hook-check.js.map +1 -0
- package/dist/migrations/sql/20240121142329-move-ip-history.d.ts +4 -0
- package/dist/migrations/sql/20240121142329-move-ip-history.d.ts.map +1 -0
- package/dist/migrations/sql/20240121142329-move-ip-history.js +44 -0
- package/dist/migrations/sql/20240121142329-move-ip-history.js.map +1 -0
- package/dist/migrations/sql/20240202101208-rename-economy-to-economyUtils.d.ts +4 -0
- package/dist/migrations/sql/20240202101208-rename-economy-to-economyUtils.d.ts.map +1 -0
- package/dist/migrations/sql/20240202101208-rename-economy-to-economyUtils.js +13 -0
- package/dist/migrations/sql/20240202101208-rename-economy-to-economyUtils.js.map +1 -0
- package/dist/migrations/sql/20240216120143-domain-state.d.ts +4 -0
- package/dist/migrations/sql/20240216120143-domain-state.d.ts.map +1 -0
- package/dist/migrations/sql/20240216120143-domain-state.js +11 -0
- package/dist/migrations/sql/20240216120143-domain-state.js.map +1 -0
- package/dist/migrations/sql/20240229141340-looser-fks-events.d.ts +4 -0
- package/dist/migrations/sql/20240229141340-looser-fks-events.d.ts.map +1 -0
- package/dist/migrations/sql/20240229141340-looser-fks-events.js +18 -0
- package/dist/migrations/sql/20240229141340-looser-fks-events.js.map +1 -0
- package/dist/migrations/sql/20240301063505-module-functions.d.ts +4 -0
- package/dist/migrations/sql/20240301063505-module-functions.d.ts.map +1 -0
- package/dist/migrations/sql/20240301063505-module-functions.js +14 -0
- package/dist/migrations/sql/20240301063505-module-functions.js.map +1 -0
- package/dist/migrations/sql/20240613175009-lastseen-users-pog.d.ts +4 -0
- package/dist/migrations/sql/20240613175009-lastseen-users-pog.d.ts.map +1 -0
- package/dist/migrations/sql/20240613175009-lastseen-users-pog.js +17 -0
- package/dist/migrations/sql/20240613175009-lastseen-users-pog.js.map +1 -0
- package/dist/migrations/sql/20240614143517-shop.d.ts +4 -0
- package/dist/migrations/sql/20240614143517-shop.d.ts.map +1 -0
- package/dist/migrations/sql/20240614143517-shop.js +29 -0
- package/dist/migrations/sql/20240614143517-shop.js.map +1 -0
- package/dist/migrations/sql/20240615145045-user-player-link.d.ts +4 -0
- package/dist/migrations/sql/20240615145045-user-player-link.d.ts.map +1 -0
- package/dist/migrations/sql/20240615145045-user-player-link.js +17 -0
- package/dist/migrations/sql/20240615145045-user-player-link.js.map +1 -0
- package/dist/migrations/sql/20240622132552-fix-ip-history-fk.d.ts +4 -0
- package/dist/migrations/sql/20240622132552-fix-ip-history-fk.d.ts.map +1 -0
- package/dist/migrations/sql/20240622132552-fix-ip-history-fk.js +11 -0
- package/dist/migrations/sql/20240622132552-fix-ip-history-fk.js.map +1 -0
- package/dist/migrations/sql/20240626200803-player-inventory-idx.d.ts +4 -0
- package/dist/migrations/sql/20240626200803-player-inventory-idx.d.ts.map +1 -0
- package/dist/migrations/sql/20240626200803-player-inventory-idx.js +11 -0
- package/dist/migrations/sql/20240626200803-player-inventory-idx.js.map +1 -0
- package/dist/migrations/sql/20240628174914-shop-orders.d.ts +4 -0
- package/dist/migrations/sql/20240628174914-shop-orders.d.ts.map +1 -0
- package/dist/migrations/sql/20240628174914-shop-orders.js +16 -0
- package/dist/migrations/sql/20240628174914-shop-orders.js.map +1 -0
- package/dist/migrations/sql/20240705140358-teleports-public-refactor.d.ts +4 -0
- package/dist/migrations/sql/20240705140358-teleports-public-refactor.d.ts.map +1 -0
- package/dist/migrations/sql/20240705140358-teleports-public-refactor.js +26 -0
- package/dist/migrations/sql/20240705140358-teleports-public-refactor.js.map +1 -0
- package/dist/migrations/sql/20240710181429-events-name-idx.d.ts +4 -0
- package/dist/migrations/sql/20240710181429-events-name-idx.d.ts.map +1 -0
- package/dist/migrations/sql/20240710181429-events-name-idx.js +11 -0
- package/dist/migrations/sql/20240710181429-events-name-idx.js.map +1 -0
- package/dist/migrations/sql/20240711181423-shop-orders-multi-listing.d.ts +4 -0
- package/dist/migrations/sql/20240711181423-shop-orders-multi-listing.d.ts.map +1 -0
- package/dist/migrations/sql/20240711181423-shop-orders-multi-listing.js +26 -0
- package/dist/migrations/sql/20240711181423-shop-orders-multi-listing.js.map +1 -0
- package/dist/migrations/sql/20240718121004-delete-read-gameservers-perm.d.ts +4 -0
- package/dist/migrations/sql/20240718121004-delete-read-gameservers-perm.d.ts.map +1 -0
- package/dist/migrations/sql/20240718121004-delete-read-gameservers-perm.js +7 -0
- package/dist/migrations/sql/20240718121004-delete-read-gameservers-perm.js.map +1 -0
- package/dist/migrations/sql/20240718150807-listing-deleted-and-draft-status.d.ts +4 -0
- package/dist/migrations/sql/20240718150807-listing-deleted-and-draft-status.d.ts.map +1 -0
- package/dist/migrations/sql/20240718150807-listing-deleted-and-draft-status.js +13 -0
- package/dist/migrations/sql/20240718150807-listing-deleted-and-draft-status.js.map +1 -0
- package/dist/migrations/sql/20240720135010-acting-user-and-module.d.ts +4 -0
- package/dist/migrations/sql/20240720135010-acting-user-and-module.d.ts.map +1 -0
- package/dist/migrations/sql/20240720135010-acting-user-and-module.js +19 -0
- package/dist/migrations/sql/20240720135010-acting-user-and-module.js.map +1 -0
- package/dist/migrations/sql/20240811061243-domain-rate-limit-setting.d.ts +4 -0
- package/dist/migrations/sql/20240811061243-domain-rate-limit-setting.d.ts.map +1 -0
- package/dist/migrations/sql/20240811061243-domain-rate-limit-setting.js +14 -0
- package/dist/migrations/sql/20240811061243-domain-rate-limit-setting.js.map +1 -0
- package/dist/migrations/sql/20240814133931-domain-ext-ref.d.ts +4 -0
- package/dist/migrations/sql/20240814133931-domain-ext-ref.d.ts.map +1 -0
- package/dist/migrations/sql/20240814133931-domain-ext-ref.js +16 -0
- package/dist/migrations/sql/20240814133931-domain-ext-ref.js.map +1 -0
- package/dist/migrations/sql/20240816171220-player-steam-level.d.ts +4 -0
- package/dist/migrations/sql/20240816171220-player-steam-level.d.ts.map +1 -0
- package/dist/migrations/sql/20240816171220-player-steam-level.js +11 -0
- package/dist/migrations/sql/20240816171220-player-steam-level.js.map +1 -0
- package/dist/migrations/sql/20240830081157-variable-expiry.d.ts +4 -0
- package/dist/migrations/sql/20240830081157-variable-expiry.d.ts.map +1 -0
- package/dist/migrations/sql/20240830081157-variable-expiry.js +11 -0
- package/dist/migrations/sql/20240830081157-variable-expiry.js.map +1 -0
- package/dist/migrations/sql/20240906125101-gameserver-enable.d.ts +4 -0
- package/dist/migrations/sql/20240906125101-gameserver-enable.d.ts.map +1 -0
- package/dist/migrations/sql/20240906125101-gameserver-enable.js +11 -0
- package/dist/migrations/sql/20240906125101-gameserver-enable.js.map +1 -0
- package/dist/migrations/sql/20240908185212-domain-name-not-unique.d.ts +4 -0
- package/dist/migrations/sql/20240908185212-domain-name-not-unique.d.ts.map +1 -0
- package/dist/migrations/sql/20240908185212-domain-name-not-unique.js +9 -0
- package/dist/migrations/sql/20240908185212-domain-name-not-unique.js.map +1 -0
- package/dist/migrations/sql/20240922110414-player-playtime.d.ts +4 -0
- package/dist/migrations/sql/20240922110414-player-playtime.d.ts.map +1 -0
- package/dist/migrations/sql/20240922110414-player-playtime.js +11 -0
- package/dist/migrations/sql/20240922110414-player-playtime.js.map +1 -0
- package/dist/migrations/sql/20240922133738-add-bans.d.ts +4 -0
- package/dist/migrations/sql/20240922133738-add-bans.d.ts.map +1 -0
- package/dist/migrations/sql/20240922133738-add-bans.js +20 -0
- package/dist/migrations/sql/20240922133738-add-bans.js.map +1 -0
- package/dist/migrations/sql/20240929090313-global-playtime.d.ts +4 -0
- package/dist/migrations/sql/20240929090313-global-playtime.d.ts.map +1 -0
- package/dist/migrations/sql/20240929090313-global-playtime.js +11 -0
- package/dist/migrations/sql/20240929090313-global-playtime.js.map +1 -0
- package/dist/migrations/sql/20240929143849-player-name-null.d.ts +4 -0
- package/dist/migrations/sql/20240929143849-player-name-null.d.ts.map +1 -0
- package/dist/migrations/sql/20240929143849-player-name-null.js +11 -0
- package/dist/migrations/sql/20240929143849-player-name-null.js.map +1 -0
- package/dist/migrations/sql/20241012183754-shop-orders-belong-to-player.d.ts +4 -0
- package/dist/migrations/sql/20241012183754-shop-orders-belong-to-player.d.ts.map +1 -0
- package/dist/migrations/sql/20241012183754-shop-orders-belong-to-player.js +38 -0
- package/dist/migrations/sql/20241012183754-shop-orders-belong-to-player.js.map +1 -0
- package/dist/migrations/sql/20241013173159-add-indexen-for-moduleId.d.ts +4 -0
- package/dist/migrations/sql/20241013173159-add-indexen-for-moduleId.d.ts.map +1 -0
- package/dist/migrations/sql/20241013173159-add-indexen-for-moduleId.js +52 -0
- package/dist/migrations/sql/20241013173159-add-indexen-for-moduleId.js.map +1 -0
- package/dist/migrations/sql/20241020133133-make-listing-name-required.d.ts +4 -0
- package/dist/migrations/sql/20241020133133-make-listing-name-required.d.ts.map +1 -0
- package/dist/migrations/sql/20241020133133-make-listing-name-required.js +13 -0
- package/dist/migrations/sql/20241020133133-make-listing-name-required.js.map +1 -0
- package/dist/migrations/sql/20241024164331-events-fk-fix.d.ts +4 -0
- package/dist/migrations/sql/20241024164331-events-fk-fix.d.ts.map +1 -0
- package/dist/migrations/sql/20241024164331-events-fk-fix.js +14 -0
- package/dist/migrations/sql/20241024164331-events-fk-fix.js.map +1 -0
- package/dist/migrations/sql/20241030130613-index-for-roleId.d.ts +4 -0
- package/dist/migrations/sql/20241030130613-index-for-roleId.d.ts.map +1 -0
- package/dist/migrations/sql/20241030130613-index-for-roleId.js +25 -0
- package/dist/migrations/sql/20241030130613-index-for-roleId.js.map +1 -0
- package/dist/migrations/sql/20241205201123-gameserver-deletedAt.d.ts +4 -0
- package/dist/migrations/sql/20241205201123-gameserver-deletedAt.d.ts.map +1 -0
- package/dist/migrations/sql/20241205201123-gameserver-deletedAt.js +11 -0
- package/dist/migrations/sql/20241205201123-gameserver-deletedAt.js.map +1 -0
- package/dist/migrations/sql/20241330200212-module-versions.d.ts +4 -0
- package/dist/migrations/sql/20241330200212-module-versions.d.ts.map +1 -0
- package/dist/migrations/sql/20241330200212-module-versions.js +329 -0
- package/dist/migrations/sql/20241330200212-module-versions.js.map +1 -0
- package/dist/migrations/sql/20250112102308-generic-gameserver.d.ts +4 -0
- package/dist/migrations/sql/20250112102308-generic-gameserver.d.ts.map +1 -0
- package/dist/migrations/sql/20250112102308-generic-gameserver.js +47 -0
- package/dist/migrations/sql/20250112102308-generic-gameserver.js.map +1 -0
- package/dist/migrations/sql/20250128200529-version-fixes.d.ts +4 -0
- package/dist/migrations/sql/20250128200529-version-fixes.d.ts.map +1 -0
- package/dist/migrations/sql/20250128200529-version-fixes.js +11 -0
- package/dist/migrations/sql/20250128200529-version-fixes.js.map +1 -0
- package/dist/migrations/sql/20250131183251-domain-settings.d.ts +4 -0
- package/dist/migrations/sql/20250131183251-domain-settings.d.ts.map +1 -0
- package/dist/migrations/sql/20250131183251-domain-settings.js +45 -0
- package/dist/migrations/sql/20250131183251-domain-settings.js.map +1 -0
- package/dist/migrations/sql/20250221130042-variable-length.d.ts +17 -0
- package/dist/migrations/sql/20250221130042-variable-length.d.ts.map +1 -0
- package/dist/migrations/sql/20250221130042-variable-length.js +30 -0
- package/dist/migrations/sql/20250221130042-variable-length.js.map +1 -0
- package/dist/migrations/sql/20250221193144-versions-perf-improvements.d.ts +10 -0
- package/dist/migrations/sql/20250221193144-versions-perf-improvements.d.ts.map +1 -0
- package/dist/migrations/sql/20250221193144-versions-perf-improvements.js +61 -0
- package/dist/migrations/sql/20250221193144-versions-perf-improvements.js.map +1 -0
- package/dist/migrations/sql/20250223143705-fix-ban-constraint.d.ts +4 -0
- package/dist/migrations/sql/20250223143705-fix-ban-constraint.d.ts.map +1 -0
- package/dist/migrations/sql/20250223143705-fix-ban-constraint.js +37 -0
- package/dist/migrations/sql/20250223143705-fix-ban-constraint.js.map +1 -0
- package/dist/migrations/sql/20250305210650-more-module-metadata.d.ts +4 -0
- package/dist/migrations/sql/20250305210650-more-module-metadata.d.ts.map +1 -0
- package/dist/migrations/sql/20250305210650-more-module-metadata.js +37 -0
- package/dist/migrations/sql/20250305210650-more-module-metadata.js.map +1 -0
- package/dist/migrations/sql/20250307162855-default-systemconfig.d.ts +4 -0
- package/dist/migrations/sql/20250307162855-default-systemconfig.d.ts.map +1 -0
- package/dist/migrations/sql/20250307162855-default-systemconfig.js +11 -0
- package/dist/migrations/sql/20250307162855-default-systemconfig.js.map +1 -0
- package/dist/migrations/sql/20250312184104-unique-external-reference.d.ts +4 -0
- package/dist/migrations/sql/20250312184104-unique-external-reference.d.ts.map +1 -0
- package/dist/migrations/sql/20250312184104-unique-external-reference.js +11 -0
- package/dist/migrations/sql/20250312184104-unique-external-reference.js.map +1 -0
- package/dist/migrations/sql/20250314185501-root-users-not-dashboard-user.d.ts +4 -0
- package/dist/migrations/sql/20250314185501-root-users-not-dashboard-user.d.ts.map +1 -0
- package/dist/migrations/sql/20250314185501-root-users-not-dashboard-user.js +15 -0
- package/dist/migrations/sql/20250314185501-root-users-not-dashboard-user.js.map +1 -0
- package/dist/migrations/sql/20250315191707-fix-constraint-module-items.d.ts +8 -0
- package/dist/migrations/sql/20250315191707-fix-constraint-module-items.d.ts.map +1 -0
- package/dist/migrations/sql/20250315191707-fix-constraint-module-items.js +17 -0
- package/dist/migrations/sql/20250315191707-fix-constraint-module-items.js.map +1 -0
- package/dist/migrations/sql/20250519185149-add-item-indexes.d.ts +13 -0
- package/dist/migrations/sql/20250519185149-add-item-indexes.d.ts.map +1 -0
- package/dist/migrations/sql/20250519185149-add-item-indexes.js +40 -0
- package/dist/migrations/sql/20250519185149-add-item-indexes.js.map +1 -0
- package/dist/migrations/sql/20250524054924-tracking.d.ts +4 -0
- package/dist/migrations/sql/20250524054924-tracking.d.ts.map +1 -0
- package/dist/migrations/sql/20250524054924-tracking.js +75 -0
- package/dist/migrations/sql/20250524054924-tracking.js.map +1 -0
- package/dist/migrations/sql/20250525135204-ban-reason-length.d.ts +4 -0
- package/dist/migrations/sql/20250525135204-ban-reason-length.d.ts.map +1 -0
- package/dist/migrations/sql/20250525135204-ban-reason-length.js +30 -0
- package/dist/migrations/sql/20250525135204-ban-reason-length.js.map +1 -0
- package/dist/migrations/sql/20250605201140-shop-permissions-missing.d.ts +4 -0
- package/dist/migrations/sql/20250605201140-shop-permissions-missing.d.ts.map +1 -0
- package/dist/migrations/sql/20250605201140-shop-permissions-missing.js +18 -0
- package/dist/migrations/sql/20250605201140-shop-permissions-missing.js.map +1 -0
- package/dist/migrations/sql/20250606060546-inventory-tracking.d.ts +4 -0
- package/dist/migrations/sql/20250606060546-inventory-tracking.d.ts.map +1 -0
- package/dist/migrations/sql/20250606060546-inventory-tracking.js +82 -0
- package/dist/migrations/sql/20250606060546-inventory-tracking.js.map +1 -0
- package/dist/migrations/sql/20250613110835-add-platform-id-to-players.d.ts +4 -0
- package/dist/migrations/sql/20250613110835-add-platform-id-to-players.d.ts.map +1 -0
- package/dist/migrations/sql/20250613110835-add-platform-id-to-players.js +43 -0
- package/dist/migrations/sql/20250613110835-add-platform-id-to-players.js.map +1 -0
- package/dist/migrations/sql/20250613203142-add-dimension-to-position.d.ts +4 -0
- package/dist/migrations/sql/20250613203142-add-dimension-to-position.d.ts.map +1 -0
- package/dist/migrations/sql/20250613203142-add-dimension-to-position.js +21 -0
- package/dist/migrations/sql/20250613203142-add-dimension-to-position.js.map +1 -0
- package/dist/migrations/sql/20250614113157-entities.d.ts +4 -0
- package/dist/migrations/sql/20250614113157-entities.d.ts.map +1 -0
- package/dist/migrations/sql/20250614113157-entities.js +36 -0
- package/dist/migrations/sql/20250614113157-entities.js.map +1 -0
- package/dist/migrations/sql/20250629090822-player-query-performance-indices.d.ts +4 -0
- package/dist/migrations/sql/20250629090822-player-query-performance-indices.d.ts.map +1 -0
- package/dist/migrations/sql/20250629090822-player-query-performance-indices.js +31 -0
- package/dist/migrations/sql/20250629090822-player-query-performance-indices.js.map +1 -0
- package/dist/migrations/sql/20250701-command-query-performance-indices.d.ts +4 -0
- package/dist/migrations/sql/20250701-command-query-performance-indices.d.ts.map +1 -0
- package/dist/migrations/sql/20250701-command-query-performance-indices.js +42 -0
- package/dist/migrations/sql/20250701-command-query-performance-indices.js.map +1 -0
- package/dist/migrations/sql/20250702181214-platform-id-and-pog-indexes.d.ts +4 -0
- package/dist/migrations/sql/20250702181214-platform-id-and-pog-indexes.d.ts.map +1 -0
- package/dist/migrations/sql/20250702181214-platform-id-and-pog-indexes.js +27 -0
- package/dist/migrations/sql/20250702181214-platform-id-and-pog-indexes.js.map +1 -0
- package/dist/migrations/sql/20250703175326-add-ip-to-player-on-gameserver.d.ts +4 -0
- package/dist/migrations/sql/20250703175326-add-ip-to-player-on-gameserver.d.ts.map +1 -0
- package/dist/migrations/sql/20250703175326-add-ip-to-player-on-gameserver.js +11 -0
- package/dist/migrations/sql/20250703175326-add-ip-to-player-on-gameserver.js.map +1 -0
- package/dist/migrations/sql/20250707205720-items-permissions-missing.d.ts +4 -0
- package/dist/migrations/sql/20250707205720-items-permissions-missing.d.ts.map +1 -0
- package/dist/migrations/sql/20250707205720-items-permissions-missing.js +18 -0
- package/dist/migrations/sql/20250707205720-items-permissions-missing.js.map +1 -0
- package/dist/migrations/sql/20250708095623-command-required-permissions.d.ts +4 -0
- package/dist/migrations/sql/20250708095623-command-required-permissions.d.ts.map +1 -0
- package/dist/migrations/sql/20250708095623-command-required-permissions.js +11 -0
- package/dist/migrations/sql/20250708095623-command-required-permissions.js.map +1 -0
- package/dist/migrations/sql/20250710131445-add-shop-categories.d.ts +4 -0
- package/dist/migrations/sql/20250710131445-add-shop-categories.d.ts.map +1 -0
- package/dist/migrations/sql/20250710131445-add-shop-categories.js +80 -0
- package/dist/migrations/sql/20250710131445-add-shop-categories.js.map +1 -0
- package/dist/migrations/sql/20250718-fix-player-inventory-history-pk.d.ts +4 -0
- package/dist/migrations/sql/20250718-fix-player-inventory-history-pk.d.ts.map +1 -0
- package/dist/migrations/sql/20250718-fix-player-inventory-history-pk.js +150 -0
- package/dist/migrations/sql/20250718-fix-player-inventory-history-pk.js.map +1 -0
- package/dist/migrations/sql/20250719160409-add-module-author-supportedgames.d.ts +8 -0
- package/dist/migrations/sql/20250719160409-add-module-author-supportedgames.d.ts.map +1 -0
- package/dist/migrations/sql/20250719160409-add-module-author-supportedgames.js +26 -0
- package/dist/migrations/sql/20250719160409-add-module-author-supportedgames.js.map +1 -0
- package/dist/migrations/sql/20250719175542-add-discord-permissions.d.ts +4 -0
- package/dist/migrations/sql/20250719175542-add-discord-permissions.d.ts.map +1 -0
- package/dist/migrations/sql/20250719175542-add-discord-permissions.js +18 -0
- package/dist/migrations/sql/20250719175542-add-discord-permissions.js.map +1 -0
- package/dist/migrations/sql/20250726000000-discord-role-sync.d.ts +4 -0
- package/dist/migrations/sql/20250726000000-discord-role-sync.d.ts.map +1 -0
- package/dist/migrations/sql/20250726000000-discord-role-sync.js +13 -0
- package/dist/migrations/sql/20250726000000-discord-role-sync.js.map +1 -0
- package/dist/migrations/sql/20250727092719-add-quality-to-inventory.d.ts +4 -0
- package/dist/migrations/sql/20250727092719-add-quality-to-inventory.d.ts.map +1 -0
- package/dist/migrations/sql/20250727092719-add-quality-to-inventory.js +11 -0
- package/dist/migrations/sql/20250727092719-add-quality-to-inventory.js.map +1 -0
- package/dist/migrations/sql/20250802124307-add-playeriphistory-composite-index.d.ts +4 -0
- package/dist/migrations/sql/20250802124307-add-playeriphistory-composite-index.d.ts.map +1 -0
- package/dist/migrations/sql/20250802124307-add-playeriphistory-composite-index.js +11 -0
- package/dist/migrations/sql/20250802124307-add-playeriphistory-composite-index.js.map +1 -0
- package/dist/migrations/sql/20250809122020-add-player-name-history.d.ts +4 -0
- package/dist/migrations/sql/20250809122020-add-player-name-history.d.ts.map +1 -0
- package/dist/migrations/sql/20250809122020-add-player-name-history.js +26 -0
- package/dist/migrations/sql/20250809122020-add-player-name-history.js.map +1 -0
- package/dist/migrations/sql/20250812163648-add-kpi-performance-indexes.d.ts +4 -0
- package/dist/migrations/sql/20250812163648-add-kpi-performance-indexes.d.ts.map +1 -0
- package/dist/migrations/sql/20250812163648-add-kpi-performance-indexes.js +17 -0
- package/dist/migrations/sql/20250812163648-add-kpi-performance-indexes.js.map +1 -0
- package/dist/migrations/sql/20250814163747-shop-order-cascade-delete.d.ts +4 -0
- package/dist/migrations/sql/20250814163747-shop-order-cascade-delete.d.ts.map +1 -0
- package/dist/migrations/sql/20250814163747-shop-order-cascade-delete.js +23 -0
- package/dist/migrations/sql/20250814163747-shop-order-cascade-delete.js.map +1 -0
- package/dist/migrations/sql/20250815120000-optimize-shop-analytics-indexes.d.ts +4 -0
- package/dist/migrations/sql/20250815120000-optimize-shop-analytics-indexes.d.ts.map +1 -0
- package/dist/migrations/sql/20250815120000-optimize-shop-analytics-indexes.js +40 -0
- package/dist/migrations/sql/20250815120000-optimize-shop-analytics-indexes.js.map +1 -0
- package/dist/migrations/sql/20251014120000-shop-order-auto-cancel-on-listing-delete.d.ts +4 -0
- package/dist/migrations/sql/20251014120000-shop-order-auto-cancel-on-listing-delete.d.ts.map +1 -0
- package/dist/migrations/sql/20251014120000-shop-order-auto-cancel-on-listing-delete.js +70 -0
- package/dist/migrations/sql/20251014120000-shop-order-auto-cancel-on-listing-delete.js.map +1 -0
- package/dist/migrations/sql/20251101000000-add-deleted-domain-state.d.ts +4 -0
- package/dist/migrations/sql/20251101000000-add-deleted-domain-state.d.ts.map +1 -0
- package/dist/migrations/sql/20251101000000-add-deleted-domain-state.js +33 -0
- package/dist/migrations/sql/20251101000000-add-deleted-domain-state.js.map +1 -0
- package/dist/migrations/sql/20251108214824-unique-player-per-server.d.ts +4 -0
- package/dist/migrations/sql/20251108214824-unique-player-per-server.d.ts.map +1 -0
- package/dist/migrations/sql/20251108214824-unique-player-per-server.js +27 -0
- package/dist/migrations/sql/20251108214824-unique-player-per-server.js.map +1 -0
- package/dist/migrations/sql/20251115071948-remove-deleted-domain-state.d.ts +4 -0
- package/dist/migrations/sql/20251115071948-remove-deleted-domain-state.d.ts.map +1 -0
- package/dist/migrations/sql/20251115071948-remove-deleted-domain-state.js +35 -0
- package/dist/migrations/sql/20251115071948-remove-deleted-domain-state.js.map +1 -0
- package/dist/migrations/sql/20251220000000-inventory-diff-storage.d.ts +4 -0
- package/dist/migrations/sql/20251220000000-inventory-diff-storage.d.ts.map +1 -0
- package/dist/migrations/sql/20251220000000-inventory-diff-storage.js +147 -0
- package/dist/migrations/sql/20251220000000-inventory-diff-storage.js.map +1 -0
- package/dist/migrations/util/alterEnum.d.ts +2 -0
- package/dist/migrations/util/alterEnum.d.ts.map +1 -0
- package/dist/migrations/util/alterEnum.js +8 -0
- package/dist/migrations/util/alterEnum.js.map +1 -0
- package/dist/queryBuilder.d.ts +43 -0
- package/dist/queryBuilder.d.ts.map +1 -0
- package/dist/queryBuilder.js +224 -0
- package/dist/queryBuilder.js.map +1 -0
- package/dist/redis.d.ts +21 -0
- package/dist/redis.d.ts.map +1 -0
- package/dist/redis.js +50 -0
- package/dist/redis.js.map +1 -0
- package/package.json +27 -0
- package/src/TakaroModel.ts +33 -0
- package/src/__tests__/encryption.integration.test.ts +57 -0
- package/src/__tests__/queryBuilder.integration.test.ts +208 -0
- package/src/config.ts +122 -0
- package/src/encryption.ts +26 -0
- package/src/errorTypeGuards.ts +11 -0
- package/src/knex.ts +59 -0
- package/src/main.ts +15 -0
- package/src/migrations/index.ts +70 -0
- package/src/migrations/sql/20220827191938_init.ts +183 -0
- package/src/migrations/sql/20221019173729_settings.ts +70 -0
- package/src/migrations/sql/20221029103554_refactor_function_assignments.ts +41 -0
- package/src/migrations/sql/20221102190532_commands.ts +66 -0
- package/src/migrations/sql/20221203135001-builtin_modules.ts +56 -0
- package/src/migrations/sql/20230308183400-persistent-variables.ts +74 -0
- package/src/migrations/sql/20230314183400-auth-ory.ts +27 -0
- package/src/migrations/sql/20230325156123_command-arguments.ts +24 -0
- package/src/migrations/sql/20230407132022-module-descriptions.ts +13 -0
- package/src/migrations/sql/20230407143733-module-json-schema-config.ts +16 -0
- package/src/migrations/sql/20230407173055-hook-regex-optional.ts +13 -0
- package/src/migrations/sql/20230415154935-cronjob-configs.ts +18 -0
- package/src/migrations/sql/20230503132906-variables-extra-meta.ts +31 -0
- package/src/migrations/sql/20230604130951-fix-hook-eventtypes.ts +12 -0
- package/src/migrations/sql/20230617081049-discordId-for-users.ts +16 -0
- package/src/migrations/sql/20230618053611-discord-funtionality.ts +34 -0
- package/src/migrations/sql/20230622192402-discord-hooks.ts +20 -0
- package/src/migrations/sql/20230707081218-playerOnGameServerExtension.ts +21 -0
- package/src/migrations/sql/20230710174340-events.ts +21 -0
- package/src/migrations/sql/20230712061220-roles-permissions-extension.ts +50 -0
- package/src/migrations/sql/20230713184927-variables-modulescoped.ts +32 -0
- package/src/migrations/sql/20230714045136-domain-index.ts +40 -0
- package/src/migrations/sql/20230714045727-events-index.ts +19 -0
- package/src/migrations/sql/20230715102519-module-permissions-extra-fields.ts +38 -0
- package/src/migrations/sql/20230724062109-roles-constraints.ts +16 -0
- package/src/migrations/sql/20230811095701-userId-on-events.ts +14 -0
- package/src/migrations/sql/20230921123717-count-for-permissions.ts +101 -0
- package/src/migrations/sql/20231111102812-details-system-permissions.ts +192 -0
- package/src/migrations/sql/20231114151343-system-roles.ts +46 -0
- package/src/migrations/sql/20231118082301-add-new-permissions.ts +200 -0
- package/src/migrations/sql/20231119115037-timedRoles.ts +23 -0
- package/src/migrations/sql/20231123150854-economy-base.ts +15 -0
- package/src/migrations/sql/20231123171611-economy-settings.ts +15 -0
- package/src/migrations/sql/20231124140441-json-module-assignments.ts +29 -0
- package/src/migrations/sql/20231208114507-settings-refactor.ts +114 -0
- package/src/migrations/sql/20231208171234-game-items.ts +20 -0
- package/src/migrations/sql/20231216100720-player-inventory.ts +16 -0
- package/src/migrations/sql/20231222180438-steam-data.ts +27 -0
- package/src/migrations/sql/20231223132631-pog-online.ts +13 -0
- package/src/migrations/sql/20231223212031-unique-index-item-def.ts +27 -0
- package/src/migrations/sql/20231224135126-gameserver-online-status.ts +13 -0
- package/src/migrations/sql/20231224155226-unique-pog.ts +27 -0
- package/src/migrations/sql/20231225140650-extra-ip-info.ts +27 -0
- package/src/migrations/sql/20231227144315-unique-constraints-player.ts +74 -0
- package/src/migrations/sql/20231229144707-more-player-constraints.ts +20 -0
- package/src/migrations/sql/20240101162751-add-settings-constraint.ts +39 -0
- package/src/migrations/sql/20240105130846-remove-some-module-perms.ts +104 -0
- package/src/migrations/sql/20240116141936-add-ui-schema-to-module.ts +13 -0
- package/src/migrations/sql/20240119152426-remove-hook-check.ts +18 -0
- package/src/migrations/sql/20240121142329-move-ip-history.ts +53 -0
- package/src/migrations/sql/20240202101208-rename-economy-to-economyUtils.ts +15 -0
- package/src/migrations/sql/20240216120143-domain-state.ts +13 -0
- package/src/migrations/sql/20240229141340-looser-fks-events.ts +20 -0
- package/src/migrations/sql/20240301063505-module-functions.ts +17 -0
- package/src/migrations/sql/20240613175009-lastseen-users-pog.ts +21 -0
- package/src/migrations/sql/20240614143517-shop.ts +39 -0
- package/src/migrations/sql/20240615145045-user-player-link.ts +20 -0
- package/src/migrations/sql/20240622132552-fix-ip-history-fk.ts +13 -0
- package/src/migrations/sql/20240626200803-player-inventory-idx.ts +13 -0
- package/src/migrations/sql/20240628174914-shop-orders.ts +20 -0
- package/src/migrations/sql/20240705140358-teleports-public-refactor.ts +31 -0
- package/src/migrations/sql/20240710181429-events-name-idx.ts +13 -0
- package/src/migrations/sql/20240711181423-shop-orders-multi-listing.ts +34 -0
- package/src/migrations/sql/20240718121004-delete-read-gameservers-perm.ts +9 -0
- package/src/migrations/sql/20240718150807-listing-deleted-and-draft-status.ts +15 -0
- package/src/migrations/sql/20240720135010-acting-user-and-module.ts +24 -0
- package/src/migrations/sql/20240811061243-domain-rate-limit-setting.ts +16 -0
- package/src/migrations/sql/20240814133931-domain-ext-ref.ts +24 -0
- package/src/migrations/sql/20240816171220-player-steam-level.ts +14 -0
- package/src/migrations/sql/20240830081157-variable-expiry.ts +14 -0
- package/src/migrations/sql/20240906125101-gameserver-enable.ts +14 -0
- package/src/migrations/sql/20240908185212-domain-name-not-unique.ts +12 -0
- package/src/migrations/sql/20240922110414-player-playtime.ts +13 -0
- package/src/migrations/sql/20240922133738-add-bans.ts +25 -0
- package/src/migrations/sql/20240929090313-global-playtime.ts +13 -0
- package/src/migrations/sql/20240929143849-player-name-null.ts +13 -0
- package/src/migrations/sql/20241012183754-shop-orders-belong-to-player.ts +44 -0
- package/src/migrations/sql/20241013173159-add-indexen-for-moduleId.ts +57 -0
- package/src/migrations/sql/20241020133133-make-listing-name-required.ts +16 -0
- package/src/migrations/sql/20241024164331-events-fk-fix.ts +16 -0
- package/src/migrations/sql/20241030130613-index-for-roleId.ts +31 -0
- package/src/migrations/sql/20241205201123-gameserver-deletedAt.ts +13 -0
- package/src/migrations/sql/20241330200212-module-versions.ts +384 -0
- package/src/migrations/sql/20250112102308-generic-gameserver.ts +55 -0
- package/src/migrations/sql/20250128200529-version-fixes.ts +13 -0
- package/src/migrations/sql/20250131183251-domain-settings.ts +55 -0
- package/src/migrations/sql/20250221130042-variable-length.ts +35 -0
- package/src/migrations/sql/20250221193144-versions-perf-improvements.ts +79 -0
- package/src/migrations/sql/20250223143705-fix-ban-constraint.ts +43 -0
- package/src/migrations/sql/20250305210650-more-module-metadata.ts +49 -0
- package/src/migrations/sql/20250307162855-default-systemconfig.ts +13 -0
- package/src/migrations/sql/20250312184104-unique-external-reference.ts +13 -0
- package/src/migrations/sql/20250314185501-root-users-not-dashboard-user.ts +17 -0
- package/src/migrations/sql/20250315191707-fix-constraint-module-items.ts +26 -0
- package/src/migrations/sql/20250519185149-add-item-indexes.ts +42 -0
- package/src/migrations/sql/20250524054924-tracking.ts +79 -0
- package/src/migrations/sql/20250525135204-ban-reason-length.ts +35 -0
- package/src/migrations/sql/20250605201140-shop-permissions-missing.ts +20 -0
- package/src/migrations/sql/20250606060546-inventory-tracking.ts +96 -0
- package/src/migrations/sql/20250613110835-add-platform-id-to-players.ts +51 -0
- package/src/migrations/sql/20250613203142-add-dimension-to-position.ts +25 -0
- package/src/migrations/sql/20250614113157-entities.ts +40 -0
- package/src/migrations/sql/20250629090822-player-query-performance-indices.ts +38 -0
- package/src/migrations/sql/20250701-command-query-performance-indices.ts +53 -0
- package/src/migrations/sql/20250702181214-platform-id-and-pog-indexes.ts +31 -0
- package/src/migrations/sql/20250703175326-add-ip-to-player-on-gameserver.ts +13 -0
- package/src/migrations/sql/20250707205720-items-permissions-missing.ts +20 -0
- package/src/migrations/sql/20250708095623-command-required-permissions.ts +13 -0
- package/src/migrations/sql/20250710131445-add-shop-categories.ts +98 -0
- package/src/migrations/sql/20250718-fix-player-inventory-history-pk.ts +161 -0
- package/src/migrations/sql/20250719160409-add-module-author-supportedgames.ts +31 -0
- package/src/migrations/sql/20250719175542-add-discord-permissions.ts +20 -0
- package/src/migrations/sql/20250726000000-discord-role-sync.ts +15 -0
- package/src/migrations/sql/20250727092719-add-quality-to-inventory.ts +13 -0
- package/src/migrations/sql/20250802124307-add-playeriphistory-composite-index.ts +13 -0
- package/src/migrations/sql/20250809122020-add-player-name-history.ts +31 -0
- package/src/migrations/sql/20250812163648-add-kpi-performance-indexes.ts +20 -0
- package/src/migrations/sql/20250814163747-shop-order-cascade-delete.ts +27 -0
- package/src/migrations/sql/20250815120000-optimize-shop-analytics-indexes.ts +46 -0
- package/src/migrations/sql/20251014120000-shop-order-auto-cancel-on-listing-delete.ts +75 -0
- package/src/migrations/sql/20251101000000-add-deleted-domain-state.ts +43 -0
- package/src/migrations/sql/20251108214824-unique-player-per-server.ts +30 -0
- package/src/migrations/sql/20251115071948-remove-deleted-domain-state.ts +46 -0
- package/src/migrations/sql/20251220000000-inventory-diff-storage.ts +164 -0
- package/src/migrations/util/alterEnum.ts +9 -0
- package/src/queryBuilder.ts +263 -0
- package/src/redis.ts +59 -0
- package/tsconfig.build.json +14 -0
- package/tsconfig.json +8 -0
- package/typedoc.json +3 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.alterTable('hooks', (table) => {
|
|
5
|
+
table.text('description').nullable();
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
await knex.schema.alterTable('commands', (table) => {
|
|
9
|
+
table.text('description').nullable();
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
await knex.schema.alterTable('cronJobs', (table) => {
|
|
13
|
+
table.text('description').nullable();
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
await knex.schema.alterTable('functions', (table) => {
|
|
17
|
+
table.text('description').nullable();
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
await knex.raw('ALTER TABLE hooks ADD CONSTRAINT description_length_check CHECK (length(description) <= 131072)');
|
|
21
|
+
await knex.raw('ALTER TABLE commands ADD CONSTRAINT description_length_check CHECK (length(description) <= 131072)');
|
|
22
|
+
await knex.raw(
|
|
23
|
+
'ALTER TABLE "cronJobs" ADD CONSTRAINT description_length_check CHECK (length(description) <= 131072)',
|
|
24
|
+
);
|
|
25
|
+
await knex.raw('ALTER TABLE functions ADD CONSTRAINT description_length_check CHECK (length(description) <= 131072)');
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function down(knex: Knex): Promise<void> {
|
|
29
|
+
await knex.raw('ALTER TABLE hooks DROP CONSTRAINT description_length_check');
|
|
30
|
+
await knex.raw('ALTER TABLE commands DROP CONSTRAINT description_length_check');
|
|
31
|
+
await knex.raw('ALTER TABLE "cronJobs" DROP CONSTRAINT description_length_check');
|
|
32
|
+
await knex.raw('ALTER TABLE functions DROP CONSTRAINT description_length_check');
|
|
33
|
+
|
|
34
|
+
await knex.schema.alterTable('hooks', (table) => {
|
|
35
|
+
table.dropColumn('description');
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
await knex.schema.alterTable('commands', (table) => {
|
|
39
|
+
table.dropColumn('description');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
await knex.schema.alterTable('cronJobs', (table) => {
|
|
43
|
+
table.dropColumn('description');
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
await knex.schema.alterTable('functions', (table) => {
|
|
47
|
+
table.dropColumn('description');
|
|
48
|
+
});
|
|
49
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.alterTable('moduleVersions', (table) => {
|
|
5
|
+
table.jsonb('defaultSystemConfig').nullable();
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export async function down(knex: Knex): Promise<void> {
|
|
10
|
+
await knex.schema.alterTable('moduleVersions', (table) => {
|
|
11
|
+
table.dropColumn('defaultSystemConfig');
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.alterTable('domains', (table) => {
|
|
5
|
+
table.unique(['externalReference']);
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export async function down(knex: Knex): Promise<void> {
|
|
10
|
+
await knex.schema.alterTable('domains', (table) => {
|
|
11
|
+
table.dropUnique(['externalReference']);
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.raw(`
|
|
5
|
+
UPDATE users
|
|
6
|
+
SET "isDashboardUser" = false
|
|
7
|
+
WHERE name = 'root'
|
|
8
|
+
`);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export async function down(knex: Knex): Promise<void> {
|
|
12
|
+
await knex.raw(`
|
|
13
|
+
UPDATE users
|
|
14
|
+
SET "isDashboardUser" = true
|
|
15
|
+
WHERE name = 'root'
|
|
16
|
+
`);
|
|
17
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* This migration ensures that all commands,hooks,cronjobs have a unique name inside their module version
|
|
5
|
+
* @param knex
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export async function up(knex: Knex): Promise<void> {
|
|
9
|
+
await knex.raw(
|
|
10
|
+
`ALTER TABLE "commands" ADD CONSTRAINT "commands_unique_name_versionId" UNIQUE ("name", "versionId");`,
|
|
11
|
+
);
|
|
12
|
+
await knex.raw(`ALTER TABLE "hooks" ADD CONSTRAINT "hooks_unique_name_versionId" UNIQUE ("name", "versionId");`);
|
|
13
|
+
await knex.raw(
|
|
14
|
+
`ALTER TABLE "cronJobs" ADD CONSTRAINT "cronJobs_unique_name_versionId" UNIQUE ("name", "versionId");`,
|
|
15
|
+
);
|
|
16
|
+
await knex.raw(
|
|
17
|
+
`ALTER TABLE "functions" ADD CONSTRAINT "functions_unique_name_versionId" UNIQUE ("name", "versionId");`,
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export async function down(knex: Knex): Promise<void> {
|
|
22
|
+
await knex.raw(`ALTER TABLE "commands" DROP CONSTRAINT "commands_unique_name_versionId";`);
|
|
23
|
+
await knex.raw(`ALTER TABLE "hooks" DROP CONSTRAINT "hooks_unique_name_versionId";`);
|
|
24
|
+
await knex.raw(`ALTER TABLE "cronJobs" DROP CONSTRAINT "cronJobs_unique_name_versionId";`);
|
|
25
|
+
await knex.raw(`ALTER TABLE "functions" DROP CONSTRAINT "functions_unique_name_versionId";`);
|
|
26
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* These indexes singificantly improve performance of the gameserver delete operation
|
|
5
|
+
* CREATE INDEX idx_itemonshoplisting_itemid ON "itemOnShopListing" ("itemId");
|
|
6
|
+
* CREATE INDEX idx_playerinventory_itemid ON "playerInventory" ("itemId");
|
|
7
|
+
* CREATE INDEX idx_playeriphistory_gameserverid ON "playerIpHistory" ("gameServerId");
|
|
8
|
+
* CREATE INDEX idx_shoplisting_gameserverid ON "shopListing" ("gameServerId");
|
|
9
|
+
*
|
|
10
|
+
* @param knex
|
|
11
|
+
*/
|
|
12
|
+
export async function up(knex: Knex): Promise<void> {
|
|
13
|
+
await knex.schema
|
|
14
|
+
.alterTable('itemOnShopListing', (table) => {
|
|
15
|
+
table.index(['itemId'], 'idx_itemonshoplisting_itemid');
|
|
16
|
+
})
|
|
17
|
+
.alterTable('playerInventory', (table) => {
|
|
18
|
+
table.index(['itemId'], 'idx_playerinventory_itemid');
|
|
19
|
+
})
|
|
20
|
+
.alterTable('playerIpHistory', (table) => {
|
|
21
|
+
table.index(['gameServerId'], 'idx_playeriphistory_gameserverid');
|
|
22
|
+
})
|
|
23
|
+
.alterTable('shopListing', (table) => {
|
|
24
|
+
table.index(['gameServerId'], 'idx_shoplisting_gameserverid');
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function down(knex: Knex): Promise<void> {
|
|
29
|
+
await knex.schema
|
|
30
|
+
.alterTable('itemOnShopListing', (table) => {
|
|
31
|
+
table.dropIndex([], 'idx_itemonshoplisting_itemid');
|
|
32
|
+
})
|
|
33
|
+
.alterTable('playerInventory', (table) => {
|
|
34
|
+
table.dropIndex([], 'idx_playerinventory_itemid');
|
|
35
|
+
})
|
|
36
|
+
.alterTable('playerIpHistory', (table) => {
|
|
37
|
+
table.dropIndex([], 'idx_playeriphistory_gameserverid');
|
|
38
|
+
})
|
|
39
|
+
.alterTable('shopListing', (table) => {
|
|
40
|
+
table.dropIndex([], 'idx_shoplisting_gameserverid');
|
|
41
|
+
});
|
|
42
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Create partitioned table using raw SQL since Knex doesn't have native partition support
|
|
5
|
+
await knex.raw(`
|
|
6
|
+
CREATE TABLE "playerLocation" (
|
|
7
|
+
id UUID DEFAULT gen_random_uuid() NOT NULL,
|
|
8
|
+
"createdAt" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
9
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
10
|
+
domain VARCHAR(255) NOT NULL,
|
|
11
|
+
"playerId" UUID NOT NULL,
|
|
12
|
+
x NUMERIC(10,3) NOT NULL,
|
|
13
|
+
y NUMERIC(10,3) NOT NULL,
|
|
14
|
+
z NUMERIC(10,3) NOT NULL,
|
|
15
|
+
CONSTRAINT "playerLocation_pkey" PRIMARY KEY ("createdAt", "playerId"),
|
|
16
|
+
CONSTRAINT "playerLocation_domain_foreign" FOREIGN KEY (domain) REFERENCES domains(id) ON DELETE CASCADE,
|
|
17
|
+
CONSTRAINT "playerLocation_playerId_foreign" FOREIGN KEY ("playerId") REFERENCES "playerOnGameServer"(id) ON DELETE CASCADE
|
|
18
|
+
) PARTITION BY RANGE ("createdAt")
|
|
19
|
+
`);
|
|
20
|
+
|
|
21
|
+
// Create function to ensure partition exists for given date
|
|
22
|
+
await knex.raw(`
|
|
23
|
+
CREATE OR REPLACE FUNCTION ensure_player_location_partition(date_param VARCHAR DEFAULT NULL)
|
|
24
|
+
RETURNS VOID AS $$
|
|
25
|
+
DECLARE
|
|
26
|
+
current_day_start DATE;
|
|
27
|
+
next_day_start DATE;
|
|
28
|
+
partition_name TEXT;
|
|
29
|
+
partition_exists BOOLEAN;
|
|
30
|
+
target_date DATE;
|
|
31
|
+
BEGIN
|
|
32
|
+
-- Parse date parameter or use current date
|
|
33
|
+
IF date_param IS NOT NULL THEN
|
|
34
|
+
target_date := DATE(date_param::TIMESTAMP);
|
|
35
|
+
ELSE
|
|
36
|
+
target_date := CURRENT_DATE;
|
|
37
|
+
END IF;
|
|
38
|
+
|
|
39
|
+
-- Calculate day boundaries for target date
|
|
40
|
+
current_day_start := DATE_TRUNC('day', target_date);
|
|
41
|
+
next_day_start := current_day_start + INTERVAL '1 day';
|
|
42
|
+
|
|
43
|
+
-- Generate partition name (format: playerLocation_YYYY_MM_DD)
|
|
44
|
+
partition_name := 'playerLocation_' || TO_CHAR(current_day_start, 'YYYY_MM_DD');
|
|
45
|
+
|
|
46
|
+
-- Check if partition exists
|
|
47
|
+
SELECT EXISTS (
|
|
48
|
+
SELECT 1 FROM pg_class c
|
|
49
|
+
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
50
|
+
WHERE c.relname = partition_name
|
|
51
|
+
AND n.nspname = 'public'
|
|
52
|
+
) INTO partition_exists;
|
|
53
|
+
|
|
54
|
+
-- Create partition if it doesn't exist
|
|
55
|
+
IF NOT partition_exists THEN
|
|
56
|
+
EXECUTE format(
|
|
57
|
+
'CREATE TABLE %I PARTITION OF "playerLocation"
|
|
58
|
+
FOR VALUES FROM (%L) TO (%L)',
|
|
59
|
+
partition_name,
|
|
60
|
+
current_day_start,
|
|
61
|
+
next_day_start
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
RAISE NOTICE 'Created partition: % for date: %',
|
|
65
|
+
partition_name, current_day_start;
|
|
66
|
+
END IF;
|
|
67
|
+
END;
|
|
68
|
+
$$ LANGUAGE plpgsql;
|
|
69
|
+
`);
|
|
70
|
+
|
|
71
|
+
// Create indexes
|
|
72
|
+
await knex.raw(`CREATE INDEX "playerLocation_domain_createdAt_idx" ON "playerLocation" (domain, "createdAt")`);
|
|
73
|
+
await knex.raw(`CREATE INDEX "playerLocation_playerId_idx" ON "playerLocation" ("playerId")`);
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export async function down(knex: Knex): Promise<void> {
|
|
77
|
+
await knex.raw('DROP FUNCTION IF EXISTS ensure_player_location_partition(VARCHAR)');
|
|
78
|
+
await knex.raw('DROP TABLE IF EXISTS "playerLocation" CASCADE');
|
|
79
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.alterTable('bans', (table) => {
|
|
5
|
+
table.text('reason').alter();
|
|
6
|
+
});
|
|
7
|
+
|
|
8
|
+
await knex.raw(`
|
|
9
|
+
CREATE OR REPLACE FUNCTION truncate_reason()
|
|
10
|
+
RETURNS TRIGGER AS $$
|
|
11
|
+
BEGIN
|
|
12
|
+
IF char_length(NEW.reason) > 10000 THEN
|
|
13
|
+
NEW.reason = left(NEW.reason, 10000);
|
|
14
|
+
END IF;
|
|
15
|
+
RETURN NEW;
|
|
16
|
+
END;
|
|
17
|
+
$$ LANGUAGE plpgsql;
|
|
18
|
+
`);
|
|
19
|
+
|
|
20
|
+
await knex.raw(`
|
|
21
|
+
CREATE TRIGGER truncate_reason_trigger
|
|
22
|
+
BEFORE INSERT OR UPDATE ON "bans"
|
|
23
|
+
FOR EACH ROW
|
|
24
|
+
EXECUTE FUNCTION truncate_reason();
|
|
25
|
+
`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function down(knex: Knex): Promise<void> {
|
|
29
|
+
await knex.raw('DROP TRIGGER IF EXISTS truncate_reason_trigger ON "bans"');
|
|
30
|
+
await knex.raw('DROP FUNCTION IF EXISTS truncate_reason()');
|
|
31
|
+
|
|
32
|
+
await knex.schema.alterTable('bans', (table) => {
|
|
33
|
+
table.string('reason', 255).alter();
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex('permission').insert([
|
|
5
|
+
{
|
|
6
|
+
permission: 'MANAGE_SHOP_LISTINGS',
|
|
7
|
+
description: 'Manage shop listings',
|
|
8
|
+
friendlyName: 'Manage Shop Listings',
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
permission: 'MANAGE_SHOP_ORDERS',
|
|
12
|
+
description: 'Manage shop orders, allowing administrative actions on orders not belonging to the user',
|
|
13
|
+
friendlyName: 'Manage Shop Orders',
|
|
14
|
+
},
|
|
15
|
+
]);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function down(knex: Knex): Promise<void> {
|
|
19
|
+
await knex('permission').whereIn('permission', ['MANAGE_SHOP_LISTINGS', 'MANAGE_SHOP_ORDERS']).del();
|
|
20
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.raw(`
|
|
5
|
+
CREATE TABLE "playerInventoryHistory" (
|
|
6
|
+
id UUID DEFAULT gen_random_uuid() NOT NULL,
|
|
7
|
+
"createdAt" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
8
|
+
"updatedAt" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP NOT NULL,
|
|
9
|
+
domain VARCHAR(255) NOT NULL,
|
|
10
|
+
"playerId" UUID NOT NULL,
|
|
11
|
+
"itemId" UUID NOT NULL,
|
|
12
|
+
quantity INTEGER NOT NULL,
|
|
13
|
+
CONSTRAINT "playerInventoryHistory_pkey" PRIMARY KEY ("createdAt", "playerId", "itemId"),
|
|
14
|
+
CONSTRAINT "playerInventoryHistory_domain_foreign" FOREIGN KEY (domain) REFERENCES domains(id) ON DELETE CASCADE,
|
|
15
|
+
CONSTRAINT "playerInventoryHistory_playerId_foreign" FOREIGN KEY ("playerId") REFERENCES "playerOnGameServer"(id) ON DELETE CASCADE,
|
|
16
|
+
CONSTRAINT "playerInventoryHistory_itemId_foreign" FOREIGN KEY ("itemId") REFERENCES items(id) ON DELETE CASCADE,
|
|
17
|
+
CONSTRAINT "playerInventoryHistory_quantity_check" CHECK (quantity >= 0)
|
|
18
|
+
) PARTITION BY RANGE ("createdAt")
|
|
19
|
+
`);
|
|
20
|
+
|
|
21
|
+
await knex.raw(`
|
|
22
|
+
CREATE OR REPLACE FUNCTION ensure_player_inventory_history_partition(date_param VARCHAR DEFAULT NULL)
|
|
23
|
+
RETURNS VOID AS $$
|
|
24
|
+
DECLARE
|
|
25
|
+
current_day_start DATE;
|
|
26
|
+
next_day_start DATE;
|
|
27
|
+
partition_name TEXT;
|
|
28
|
+
partition_exists BOOLEAN;
|
|
29
|
+
target_date DATE;
|
|
30
|
+
BEGIN
|
|
31
|
+
IF date_param IS NOT NULL THEN
|
|
32
|
+
target_date := DATE(date_param::TIMESTAMP);
|
|
33
|
+
ELSE
|
|
34
|
+
target_date := CURRENT_DATE;
|
|
35
|
+
END IF;
|
|
36
|
+
|
|
37
|
+
current_day_start := DATE_TRUNC('day', target_date);
|
|
38
|
+
next_day_start := current_day_start + INTERVAL '1 day';
|
|
39
|
+
|
|
40
|
+
partition_name := 'playerInventoryHistory_' || TO_CHAR(current_day_start, 'YYYY_MM_DD');
|
|
41
|
+
|
|
42
|
+
SELECT EXISTS (
|
|
43
|
+
SELECT 1 FROM pg_class c
|
|
44
|
+
JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
45
|
+
WHERE c.relname = partition_name
|
|
46
|
+
AND n.nspname = 'public'
|
|
47
|
+
) INTO partition_exists;
|
|
48
|
+
|
|
49
|
+
IF NOT partition_exists THEN
|
|
50
|
+
EXECUTE format(
|
|
51
|
+
'CREATE TABLE %I PARTITION OF "playerInventoryHistory"
|
|
52
|
+
FOR VALUES FROM (%L) TO (%L)',
|
|
53
|
+
partition_name,
|
|
54
|
+
current_day_start,
|
|
55
|
+
next_day_start
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
RAISE NOTICE 'Created partition: % for date: %',
|
|
59
|
+
partition_name, current_day_start;
|
|
60
|
+
END IF;
|
|
61
|
+
END;
|
|
62
|
+
$$ LANGUAGE plpgsql;
|
|
63
|
+
`);
|
|
64
|
+
|
|
65
|
+
await knex.raw(
|
|
66
|
+
`CREATE INDEX "playerInventoryHistory_domain_createdAt_idx" ON "playerInventoryHistory" (domain, "createdAt")`,
|
|
67
|
+
);
|
|
68
|
+
await knex.raw(`CREATE INDEX "playerInventoryHistory_playerId_idx" ON "playerInventoryHistory" ("playerId")`);
|
|
69
|
+
await knex.raw(`CREATE INDEX "playerInventoryHistory_itemId_idx" ON "playerInventoryHistory" ("itemId")`);
|
|
70
|
+
await knex.raw(
|
|
71
|
+
`CREATE INDEX "playerInventoryHistory_playerId_createdAt_idx" ON "playerInventoryHistory" ("playerId", "createdAt" DESC)`,
|
|
72
|
+
);
|
|
73
|
+
await knex.raw(
|
|
74
|
+
`CREATE INDEX "playerInventoryHistory_itemId_createdAt_idx" ON "playerInventoryHistory" ("itemId", "createdAt" DESC)`,
|
|
75
|
+
);
|
|
76
|
+
await knex.raw(
|
|
77
|
+
`CREATE INDEX "playerInventoryHistory_domain_itemId_createdAt_idx" ON "playerInventoryHistory" (domain, "itemId", "createdAt" DESC)`,
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
// Delete the old playerInventory table
|
|
81
|
+
await knex.raw('DROP TABLE IF EXISTS "playerInventory" CASCADE');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export async function down(knex: Knex): Promise<void> {
|
|
85
|
+
await knex.schema.createTable('playerInventory', (table) => {
|
|
86
|
+
table.uuid('id').primary().defaultTo(knex.raw('gen_random_uuid ()'));
|
|
87
|
+
table.timestamps(true, true, true);
|
|
88
|
+
table.string('domain').references('domains.id').onDelete('CASCADE').notNullable();
|
|
89
|
+
table.uuid('playerId').references('playerOnGameServer.id').onDelete('CASCADE').notNullable();
|
|
90
|
+
table.uuid('itemId').references('items.id').onDelete('CASCADE').notNullable();
|
|
91
|
+
table.integer('quantity').notNullable();
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
await knex.raw('DROP FUNCTION IF EXISTS ensure_player_inventory_history_partition(VARCHAR)');
|
|
95
|
+
await knex.raw('DROP TABLE IF EXISTS "playerInventoryHistory" CASCADE');
|
|
96
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Add platformId column to players table
|
|
5
|
+
await knex.schema.alterTable('players', (table) => {
|
|
6
|
+
table.string('platformId').nullable();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
// Add unique constraint for domain + platformId
|
|
10
|
+
await knex.schema.alterTable('players', (table) => {
|
|
11
|
+
table.unique(['domain', 'platformId']);
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
// Drop the existing unique constraint
|
|
15
|
+
await knex.raw(`
|
|
16
|
+
ALTER TABLE players
|
|
17
|
+
DROP CONSTRAINT players_domain_steam_xbox_eos_unique;
|
|
18
|
+
`);
|
|
19
|
+
|
|
20
|
+
// Add new unique constraint that includes platformId
|
|
21
|
+
await knex.raw(`
|
|
22
|
+
ALTER TABLE players
|
|
23
|
+
ADD CONSTRAINT players_domain_steam_xbox_eos_platform_unique
|
|
24
|
+
UNIQUE NULLS NOT DISTINCT (domain, "steamId", "xboxLiveId", "epicOnlineServicesId", "platformId");
|
|
25
|
+
`);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export async function down(knex: Knex): Promise<void> {
|
|
29
|
+
// Drop the new unique constraint
|
|
30
|
+
await knex.raw(`
|
|
31
|
+
ALTER TABLE players
|
|
32
|
+
DROP CONSTRAINT players_domain_steam_xbox_eos_platform_unique;
|
|
33
|
+
`);
|
|
34
|
+
|
|
35
|
+
// Drop the individual platformId unique constraint
|
|
36
|
+
await knex.schema.alterTable('players', (table) => {
|
|
37
|
+
table.dropUnique(['domain', 'platformId']);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
// Remove platformId column
|
|
41
|
+
await knex.schema.alterTable('players', (table) => {
|
|
42
|
+
table.dropColumn('platformId');
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Re-add the original unique constraint
|
|
46
|
+
await knex.raw(`
|
|
47
|
+
ALTER TABLE players
|
|
48
|
+
ADD CONSTRAINT players_domain_steam_xbox_eos_unique
|
|
49
|
+
UNIQUE NULLS NOT DISTINCT (domain, "steamId", "xboxLiveId", "epicOnlineServicesId");
|
|
50
|
+
`);
|
|
51
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Add dimension column to playerOnGameServer table
|
|
5
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
6
|
+
table.string('dimension').nullable();
|
|
7
|
+
});
|
|
8
|
+
|
|
9
|
+
// Add dimension column to playerLocation table
|
|
10
|
+
await knex.schema.alterTable('playerLocation', (table) => {
|
|
11
|
+
table.string('dimension').nullable();
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function down(knex: Knex): Promise<void> {
|
|
16
|
+
// Remove dimension column from playerOnGameServer table
|
|
17
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
18
|
+
table.dropColumn('dimension');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Remove dimension column from playerLocation table
|
|
22
|
+
await knex.schema.alterTable('playerLocation', (table) => {
|
|
23
|
+
table.dropColumn('dimension');
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.createTable('entities', (table) => {
|
|
5
|
+
table.uuid('id').primary().defaultTo(knex.raw('gen_random_uuid ()'));
|
|
6
|
+
table.timestamps(true, true, true);
|
|
7
|
+
table.string('domain').references('domains.id').onDelete('CASCADE').notNullable();
|
|
8
|
+
table.uuid('gameserverId').references('gameservers.id').onDelete('CASCADE').notNullable();
|
|
9
|
+
table.string('name').notNullable();
|
|
10
|
+
table.string('code').notNullable();
|
|
11
|
+
table.text('description').nullable();
|
|
12
|
+
table.enum('type', ['hostile', 'friendly', 'neutral']).nullable();
|
|
13
|
+
table.jsonb('metadata').nullable();
|
|
14
|
+
// Add index on code since we'll use that in queries a lot
|
|
15
|
+
table.index('code');
|
|
16
|
+
// Add unique constraint to prevent duplicates
|
|
17
|
+
table.unique(['code', 'gameserverId', 'domain']);
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
// Insert entity permissions
|
|
21
|
+
await knex('permission').insert([
|
|
22
|
+
{
|
|
23
|
+
permission: 'READ_ENTITIES',
|
|
24
|
+
description: 'Can view entity details',
|
|
25
|
+
friendlyName: 'Read Entities',
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
permission: 'MANAGE_ENTITIES',
|
|
29
|
+
description: 'Can create, update, and delete entities',
|
|
30
|
+
friendlyName: 'Manage Entities',
|
|
31
|
+
},
|
|
32
|
+
]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export async function down(knex: Knex): Promise<void> {
|
|
36
|
+
// Remove entity permissions
|
|
37
|
+
await knex('permission').whereIn('permission', ['READ_ENTITIES', 'MANAGE_ENTITIES']).del();
|
|
38
|
+
|
|
39
|
+
await knex.schema.dropTable('entities');
|
|
40
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Create optimized indices for the slow player count query:
|
|
5
|
+
// SELECT COUNT(DISTINCT players.id)
|
|
6
|
+
// FROM players
|
|
7
|
+
// INNER JOIN playerOnGameServer ON playerOnGameServer.playerId = players.id
|
|
8
|
+
// WHERE players.domain = $1 AND playerOnGameServer.lastSeen > $2
|
|
9
|
+
|
|
10
|
+
// Primary optimization: Composite index on playerOnGameServer for efficient join + filter
|
|
11
|
+
// This allows PostgreSQL to use the index for both the JOIN and WHERE clause
|
|
12
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
13
|
+
table.index(['playerId', 'lastSeen'], 'idx_playerongameserver_playerid_lastseen');
|
|
14
|
+
});
|
|
15
|
+
|
|
16
|
+
// Secondary optimization: Index on players.domain for the WHERE clause
|
|
17
|
+
await knex.schema.alterTable('players', (table) => {
|
|
18
|
+
table.index(['domain'], 'idx_players_domain');
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
// Covering index on players(domain, id) to avoid table lookups after index scan
|
|
22
|
+
await knex.schema.alterTable('players', (table) => {
|
|
23
|
+
table.index(['domain', 'id'], 'idx_players_domain_id');
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export async function down(knex: Knex): Promise<void> {
|
|
28
|
+
// Drop all indices created in the up function
|
|
29
|
+
|
|
30
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
31
|
+
table.dropIndex([], 'idx_playerongameserver_playerid_lastseen');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
await knex.schema.alterTable('players', (table) => {
|
|
35
|
+
table.dropIndex([], 'idx_players_domain');
|
|
36
|
+
table.dropIndex([], 'idx_players_domain_id');
|
|
37
|
+
});
|
|
38
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Optimize the getTriggeredCommands query performance
|
|
5
|
+
// The query joins multiple tables and performs complex JSONB operations
|
|
6
|
+
|
|
7
|
+
// 1. Case-insensitive index on commands.trigger for efficient trigger matching
|
|
8
|
+
// This allows the LOWER(commands.trigger) = ? condition to use an index
|
|
9
|
+
await knex.raw('CREATE INDEX idx_commands_trigger_lower ON commands (LOWER(trigger))');
|
|
10
|
+
|
|
11
|
+
// 2. Index on moduleInstallations.gameserverId for efficient filtering
|
|
12
|
+
// The query filters by gameserverId through the join chain
|
|
13
|
+
await knex.schema.alterTable('moduleInstallations', (table) => {
|
|
14
|
+
table.index(['gameserverId'], 'idx_moduleinstallations_gameserverid');
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// 3. Index on moduleInstallations.versionId for join optimization
|
|
18
|
+
// This helps the join between moduleInstallations and moduleVersions
|
|
19
|
+
await knex.schema.alterTable('moduleInstallations', (table) => {
|
|
20
|
+
table.index(['versionId'], 'idx_moduleinstallations_versionid');
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
// 4. GIN index on moduleInstallations.systemConfig for JSONB queries
|
|
24
|
+
// This optimizes the complex EXISTS subquery that searches command aliases
|
|
25
|
+
await knex.raw(`
|
|
26
|
+
CREATE INDEX idx_moduleinstallations_systemconfig_commands_gin
|
|
27
|
+
ON "moduleInstallations"
|
|
28
|
+
USING gin (("systemConfig" -> 'commands'))
|
|
29
|
+
`);
|
|
30
|
+
|
|
31
|
+
// 5. Composite index on commands for better join performance
|
|
32
|
+
// This helps when joining from moduleVersions to commands
|
|
33
|
+
await knex.schema.alterTable('commands', (table) => {
|
|
34
|
+
table.index(['versionId', 'domain'], 'idx_commands_versionid_domain');
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export async function down(knex: Knex): Promise<void> {
|
|
39
|
+
// Drop all indices created in the up function
|
|
40
|
+
|
|
41
|
+
await knex.raw('DROP INDEX IF EXISTS idx_commands_trigger_lower');
|
|
42
|
+
|
|
43
|
+
await knex.schema.alterTable('moduleInstallations', (table) => {
|
|
44
|
+
table.dropIndex([], 'idx_moduleinstallations_gameserverid');
|
|
45
|
+
table.dropIndex([], 'idx_moduleinstallations_versionid');
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
await knex.raw('DROP INDEX IF EXISTS idx_moduleinstallations_systemconfig_commands_gin');
|
|
49
|
+
|
|
50
|
+
await knex.schema.alterTable('commands', (table) => {
|
|
51
|
+
table.dropIndex([], 'idx_commands_versionid_domain');
|
|
52
|
+
});
|
|
53
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
// Add indexes for platform ID lookups in resolveRef
|
|
5
|
+
await knex.schema.alterTable('players', (table) => {
|
|
6
|
+
table.index(['domain', 'steamId'], 'idx_players_domain_steamid');
|
|
7
|
+
table.index(['domain', 'epicOnlineServicesId'], 'idx_players_domain_epiconlineservicesid');
|
|
8
|
+
table.index(['domain', 'xboxLiveId'], 'idx_players_domain_xboxliveid');
|
|
9
|
+
table.index(['domain', 'platformId'], 'idx_players_domain_platformid');
|
|
10
|
+
});
|
|
11
|
+
|
|
12
|
+
// Add composite index for playerOnGameServer findAssociations query
|
|
13
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
14
|
+
table.index(['domain', 'gameId', 'gameServerId'], 'idx_pog_domain_gameid_gameserverid');
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export async function down(knex: Knex): Promise<void> {
|
|
19
|
+
// Drop platform ID indexes
|
|
20
|
+
await knex.schema.alterTable('players', (table) => {
|
|
21
|
+
table.dropIndex([], 'idx_players_domain_steamid');
|
|
22
|
+
table.dropIndex([], 'idx_players_domain_epiconlineservicesid');
|
|
23
|
+
table.dropIndex([], 'idx_players_domain_xboxliveid');
|
|
24
|
+
table.dropIndex([], 'idx_players_domain_platformid');
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
// Drop playerOnGameServer composite index
|
|
28
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
29
|
+
table.dropIndex([], 'idx_pog_domain_gameid_gameserverid');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Knex } from 'knex';
|
|
2
|
+
|
|
3
|
+
export async function up(knex: Knex): Promise<void> {
|
|
4
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
5
|
+
table.string('ip').nullable();
|
|
6
|
+
});
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export async function down(knex: Knex): Promise<void> {
|
|
10
|
+
await knex.schema.alterTable('playerOnGameServer', (table) => {
|
|
11
|
+
table.dropColumn('ip');
|
|
12
|
+
});
|
|
13
|
+
}
|