- Added a new service for managing recurring tasks, allowing configuration of task schedules with timezone support. - Introduced job queues for processing recurring tasks and handling task creation in bulk. - Implemented notification system to alert users about newly created recurring tasks, including email and in-app notifications. - Enhanced database schema with new tables for notifications and audit logs to track recurring task operations. - Updated frontend components to support timezone selection and manage excluded dates for recurring tasks. - Refactored existing code to integrate new features and improve overall task management experience.
387 lines
14 KiB
JSON
387 lines
14 KiB
JSON
{
|
|
"name": "worklenz",
|
|
"lockfileVersion": 3,
|
|
"requires": true,
|
|
"packages": {
|
|
"": {
|
|
"dependencies": {
|
|
"bull": "^4.16.5",
|
|
"ioredis": "^5.6.1"
|
|
},
|
|
"devDependencies": {
|
|
"@types/bull": "^3.15.9"
|
|
}
|
|
},
|
|
"node_modules/@ioredis/commands": {
|
|
"version": "1.2.0",
|
|
"resolved": "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz",
|
|
"integrity": "sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz",
|
|
"integrity": "sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
]
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.3.tgz",
|
|
"integrity": "sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"darwin"
|
|
]
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.3.tgz",
|
|
"integrity": "sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==",
|
|
"cpu": [
|
|
"arm"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
]
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.3.tgz",
|
|
"integrity": "sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==",
|
|
"cpu": [
|
|
"arm64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
]
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.3.tgz",
|
|
"integrity": "sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"linux"
|
|
]
|
|
},
|
|
"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.3.tgz",
|
|
"integrity": "sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==",
|
|
"cpu": [
|
|
"x64"
|
|
],
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"os": [
|
|
"win32"
|
|
]
|
|
},
|
|
"node_modules/@types/bull": {
|
|
"version": "3.15.9",
|
|
"resolved": "https://registry.npmjs.org/@types/bull/-/bull-3.15.9.tgz",
|
|
"integrity": "sha512-MPUcyPPQauAmynoO3ezHAmCOhbB0pWmYyijr/5ctaCqhbKWsjW0YCod38ZcLzUBprosfZ9dPqfYIcfdKjk7RNQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@types/ioredis": "*",
|
|
"@types/redis": "^2.8.0"
|
|
}
|
|
},
|
|
"node_modules/@types/ioredis": {
|
|
"version": "4.28.10",
|
|
"resolved": "https://registry.npmjs.org/@types/ioredis/-/ioredis-4.28.10.tgz",
|
|
"integrity": "sha512-69LyhUgrXdgcNDv7ogs1qXZomnfOEnSmrmMFqKgt1XMJxmoOSG/u3wYy13yACIfKuMJ8IhKgHafDO3sx19zVQQ==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@types/node": "*"
|
|
}
|
|
},
|
|
"node_modules/@types/node": {
|
|
"version": "24.0.15",
|
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-24.0.15.tgz",
|
|
"integrity": "sha512-oaeTSbCef7U/z7rDeJA138xpG3NuKc64/rZ2qmUFkFJmnMsAPaluIifqyWd8hSSMxyP9oie3dLAqYPblag9KgA==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"undici-types": "~7.8.0"
|
|
}
|
|
},
|
|
"node_modules/@types/redis": {
|
|
"version": "2.8.32",
|
|
"resolved": "https://registry.npmjs.org/@types/redis/-/redis-2.8.32.tgz",
|
|
"integrity": "sha512-7jkMKxcGq9p242exlbsVzuJb57KqHRhNl4dHoQu2Y5v9bCAbtIXXH0R3HleSQW4CTOqpHIYUW3t6tpUj4BVQ+w==",
|
|
"dev": true,
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@types/node": "*"
|
|
}
|
|
},
|
|
"node_modules/bull": {
|
|
"version": "4.16.5",
|
|
"resolved": "https://registry.npmjs.org/bull/-/bull-4.16.5.tgz",
|
|
"integrity": "sha512-lDsx2BzkKe7gkCYiT5Acj02DpTwDznl/VNN7Psn7M3USPG7Vs/BaClZJJTAG+ufAR9++N1/NiUTdaFBWDIl5TQ==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"cron-parser": "^4.9.0",
|
|
"get-port": "^5.1.1",
|
|
"ioredis": "^5.3.2",
|
|
"lodash": "^4.17.21",
|
|
"msgpackr": "^1.11.2",
|
|
"semver": "^7.5.2",
|
|
"uuid": "^8.3.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=12"
|
|
}
|
|
},
|
|
"node_modules/cluster-key-slot": {
|
|
"version": "1.1.2",
|
|
"resolved": "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz",
|
|
"integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==",
|
|
"license": "Apache-2.0",
|
|
"engines": {
|
|
"node": ">=0.10.0"
|
|
}
|
|
},
|
|
"node_modules/cron-parser": {
|
|
"version": "4.9.0",
|
|
"resolved": "https://registry.npmjs.org/cron-parser/-/cron-parser-4.9.0.tgz",
|
|
"integrity": "sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"luxon": "^3.2.1"
|
|
},
|
|
"engines": {
|
|
"node": ">=12.0.0"
|
|
}
|
|
},
|
|
"node_modules/debug": {
|
|
"version": "4.4.1",
|
|
"resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz",
|
|
"integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"ms": "^2.1.3"
|
|
},
|
|
"engines": {
|
|
"node": ">=6.0"
|
|
},
|
|
"peerDependenciesMeta": {
|
|
"supports-color": {
|
|
"optional": true
|
|
}
|
|
}
|
|
},
|
|
"node_modules/denque": {
|
|
"version": "2.1.0",
|
|
"resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz",
|
|
"integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==",
|
|
"license": "Apache-2.0",
|
|
"engines": {
|
|
"node": ">=0.10"
|
|
}
|
|
},
|
|
"node_modules/detect-libc": {
|
|
"version": "2.0.4",
|
|
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.4.tgz",
|
|
"integrity": "sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==",
|
|
"license": "Apache-2.0",
|
|
"optional": true,
|
|
"engines": {
|
|
"node": ">=8"
|
|
}
|
|
},
|
|
"node_modules/get-port": {
|
|
"version": "5.1.1",
|
|
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
|
|
"integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=8"
|
|
},
|
|
"funding": {
|
|
"url": "https://github.com/sponsors/sindresorhus"
|
|
}
|
|
},
|
|
"node_modules/ioredis": {
|
|
"version": "5.6.1",
|
|
"resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.6.1.tgz",
|
|
"integrity": "sha512-UxC0Yv1Y4WRJiGQxQkP0hfdL0/5/6YvdfOOClRgJ0qppSarkhneSa6UvkMkms0AkdGimSH3Ikqm+6mkMmX7vGA==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"@ioredis/commands": "^1.1.1",
|
|
"cluster-key-slot": "^1.1.0",
|
|
"debug": "^4.3.4",
|
|
"denque": "^2.1.0",
|
|
"lodash.defaults": "^4.2.0",
|
|
"lodash.isarguments": "^3.1.0",
|
|
"redis-errors": "^1.2.0",
|
|
"redis-parser": "^3.0.0",
|
|
"standard-as-callback": "^2.1.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=12.22.0"
|
|
},
|
|
"funding": {
|
|
"type": "opencollective",
|
|
"url": "https://opencollective.com/ioredis"
|
|
}
|
|
},
|
|
"node_modules/lodash": {
|
|
"version": "4.17.21",
|
|
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/lodash.defaults": {
|
|
"version": "4.2.0",
|
|
"resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz",
|
|
"integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/lodash.isarguments": {
|
|
"version": "3.1.0",
|
|
"resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz",
|
|
"integrity": "sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/luxon": {
|
|
"version": "3.7.1",
|
|
"resolved": "https://registry.npmjs.org/luxon/-/luxon-3.7.1.tgz",
|
|
"integrity": "sha512-RkRWjA926cTvz5rAb1BqyWkKbbjzCGchDUIKMCUvNi17j6f6j8uHGDV82Aqcqtzd+icoYpELmG3ksgGiFNNcNg==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=12"
|
|
}
|
|
},
|
|
"node_modules/ms": {
|
|
"version": "2.1.3",
|
|
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
|
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/msgpackr": {
|
|
"version": "1.11.5",
|
|
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-1.11.5.tgz",
|
|
"integrity": "sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==",
|
|
"license": "MIT",
|
|
"optionalDependencies": {
|
|
"msgpackr-extract": "^3.0.2"
|
|
}
|
|
},
|
|
"node_modules/msgpackr-extract": {
|
|
"version": "3.0.3",
|
|
"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.3.tgz",
|
|
"integrity": "sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==",
|
|
"hasInstallScript": true,
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"node-gyp-build-optional-packages": "5.2.2"
|
|
},
|
|
"bin": {
|
|
"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
|
|
},
|
|
"optionalDependencies": {
|
|
"@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.3",
|
|
"@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.3",
|
|
"@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.3",
|
|
"@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.3",
|
|
"@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.3",
|
|
"@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.3"
|
|
}
|
|
},
|
|
"node_modules/node-gyp-build-optional-packages": {
|
|
"version": "5.2.2",
|
|
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
|
|
"integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
|
|
"license": "MIT",
|
|
"optional": true,
|
|
"dependencies": {
|
|
"detect-libc": "^2.0.1"
|
|
},
|
|
"bin": {
|
|
"node-gyp-build-optional-packages": "bin.js",
|
|
"node-gyp-build-optional-packages-optional": "optional.js",
|
|
"node-gyp-build-optional-packages-test": "build-test.js"
|
|
}
|
|
},
|
|
"node_modules/redis-errors": {
|
|
"version": "1.2.0",
|
|
"resolved": "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz",
|
|
"integrity": "sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==",
|
|
"license": "MIT",
|
|
"engines": {
|
|
"node": ">=4"
|
|
}
|
|
},
|
|
"node_modules/redis-parser": {
|
|
"version": "3.0.0",
|
|
"resolved": "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz",
|
|
"integrity": "sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==",
|
|
"license": "MIT",
|
|
"dependencies": {
|
|
"redis-errors": "^1.0.0"
|
|
},
|
|
"engines": {
|
|
"node": ">=4"
|
|
}
|
|
},
|
|
"node_modules/semver": {
|
|
"version": "7.7.2",
|
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",
|
|
"integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==",
|
|
"license": "ISC",
|
|
"bin": {
|
|
"semver": "bin/semver.js"
|
|
},
|
|
"engines": {
|
|
"node": ">=10"
|
|
}
|
|
},
|
|
"node_modules/standard-as-callback": {
|
|
"version": "2.1.0",
|
|
"resolved": "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz",
|
|
"integrity": "sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==",
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/undici-types": {
|
|
"version": "7.8.0",
|
|
"resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.8.0.tgz",
|
|
"integrity": "sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==",
|
|
"dev": true,
|
|
"license": "MIT"
|
|
},
|
|
"node_modules/uuid": {
|
|
"version": "8.3.2",
|
|
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
|
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
|
"license": "MIT",
|
|
"bin": {
|
|
"uuid": "dist/bin/uuid"
|
|
}
|
|
}
|
|
}
|
|
}
|