@technomoron/mail-magic 1.0.38 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/CHANGES +48 -0
  2. package/README.md +7 -2
  3. package/dist/cjs/index.d.ts +1 -0
  4. package/dist/cjs/index.js +1 -1
  5. package/dist/cjs/package.json +1 -1
  6. package/dist/esm/api/assets.d.ts +9 -0
  7. package/dist/esm/api/auth.d.ts +2 -0
  8. package/dist/esm/api/auth.js +17 -8
  9. package/dist/esm/api/forms.d.ts +9 -0
  10. package/dist/esm/api/forms.js +7 -4
  11. package/dist/esm/api/mailer.d.ts +11 -0
  12. package/dist/esm/api/mailer.js +8 -7
  13. package/dist/esm/bin/mail-magic.d.ts +2 -0
  14. package/dist/esm/bin/mail-magic.js +0 -0
  15. package/dist/esm/index.d.ts +12 -0
  16. package/dist/esm/models/db.d.ts +5 -0
  17. package/dist/esm/models/db.js +2 -2
  18. package/dist/esm/models/domain.d.ts +24 -0
  19. package/dist/esm/models/domain.js +0 -2
  20. package/dist/esm/models/form.d.ts +50 -0
  21. package/dist/esm/models/form.js +16 -15
  22. package/dist/esm/models/init.d.ts +12 -0
  23. package/dist/esm/models/init.js +7 -28
  24. package/dist/esm/models/recipient.d.ts +24 -0
  25. package/dist/esm/models/recipient.js +0 -2
  26. package/dist/esm/models/txmail.d.ts +42 -0
  27. package/dist/esm/models/txmail.js +0 -2
  28. package/dist/esm/models/user.d.ts +33 -0
  29. package/dist/esm/models/user.js +0 -2
  30. package/dist/esm/server.d.ts +8 -0
  31. package/dist/esm/store/envloader.d.ts +188 -0
  32. package/dist/esm/store/envloader.js +14 -4
  33. package/dist/esm/store/store.d.ts +37 -0
  34. package/dist/esm/store/store.js +6 -7
  35. package/dist/esm/swagger.d.ts +10 -0
  36. package/dist/esm/types.d.ts +32 -0
  37. package/dist/esm/util/captcha.d.ts +7 -0
  38. package/dist/esm/util/captcha.js +4 -1
  39. package/dist/esm/util/email.d.ts +3 -0
  40. package/dist/esm/util/form-replyto.d.ts +6 -0
  41. package/dist/esm/util/form-submission.d.ts +24 -0
  42. package/dist/esm/util/forms.d.ts +140 -0
  43. package/dist/esm/util/forms.js +18 -32
  44. package/dist/esm/util/paths.d.ts +15 -0
  45. package/dist/esm/util/paths.js +17 -0
  46. package/dist/esm/util/ratelimit.d.ts +16 -0
  47. package/dist/esm/util/ratelimit.js +6 -1
  48. package/dist/esm/util/route.d.ts +1 -0
  49. package/dist/esm/util/shared-template-flatten.d.ts +17 -0
  50. package/dist/esm/util/shared-template-flatten.js +41 -0
  51. package/dist/esm/util/uploads.d.ts +10 -0
  52. package/dist/esm/util/utils.d.ts +27 -0
  53. package/dist/esm/util.d.ts +7 -0
  54. package/docs/swagger/openapi.json +16 -12
  55. package/docs/tutorial.md +2 -2
  56. package/examples/.env-dist +21 -0
  57. package/examples/README.md +74 -0
  58. package/examples/data/example.test/form-template/base.njk +4 -0
  59. package/examples/data/example.test/form-template/en/base.njk +1 -0
  60. package/examples/data/example.test/form-template/en/change-password.njk +5 -0
  61. package/examples/data/example.test/form-template/en/confirm-account.njk +5 -0
  62. package/examples/data/example.test/form-template/en/contact.njk +5 -0
  63. package/examples/data/example.test/form-template/en/partials/fields.njk +5 -0
  64. package/examples/data/example.test/form-template/en/welcome-signup.njk +5 -0
  65. package/examples/data/example.test/form-template/nb/base.njk +1 -0
  66. package/examples/data/example.test/form-template/nb/change-password.njk +5 -0
  67. package/examples/data/example.test/form-template/nb/confirm-account.njk +5 -0
  68. package/examples/data/example.test/form-template/nb/contact.njk +5 -0
  69. package/examples/data/example.test/form-template/nb/partials/fields.njk +5 -0
  70. package/examples/data/example.test/form-template/nb/welcome-signup.njk +5 -0
  71. package/examples/data/example.test/form-template/partials/header.njk +1 -0
  72. package/examples/data/example.test/tx-template/base.njk +16 -0
  73. package/examples/data/example.test/tx-template/en/base.njk +1 -0
  74. package/examples/data/example.test/tx-template/en/change-password.njk +7 -0
  75. package/examples/data/example.test/tx-template/en/confirm.njk +6 -0
  76. package/examples/data/example.test/tx-template/en/invoice.njk +8 -0
  77. package/examples/data/example.test/tx-template/en/partials/header.njk +1 -0
  78. package/examples/data/example.test/tx-template/en/partials/line-items.njk +14 -0
  79. package/examples/data/example.test/tx-template/en/receipt.njk +7 -0
  80. package/examples/data/example.test/tx-template/en/welcome.njk +5 -0
  81. package/examples/data/example.test/tx-template/nb/base.njk +1 -0
  82. package/examples/data/example.test/tx-template/nb/change-password.njk +6 -0
  83. package/examples/data/example.test/tx-template/nb/confirm.njk +6 -0
  84. package/examples/data/example.test/tx-template/nb/invoice.njk +7 -0
  85. package/examples/data/example.test/tx-template/nb/partials/header.njk +1 -0
  86. package/examples/data/example.test/tx-template/nb/receipt.njk +6 -0
  87. package/examples/data/example.test/tx-template/nb/welcome.njk +5 -0
  88. package/examples/data/example.test/tx-template/partials/header.njk +7 -0
  89. package/examples/data/init-data.json +213 -0
  90. package/examples/scripts/mm-api.ts +206 -0
  91. package/examples/scripts/public-form.ts +100 -0
  92. package/examples/scripts/send-messages.ts +114 -0
  93. package/package.json +90 -85
package/package.json CHANGED
@@ -1,86 +1,91 @@
1
1
  {
2
- "name": "@technomoron/mail-magic",
3
- "version": "1.0.38",
4
- "main": "dist/cjs/index.js",
5
- "module": "dist/esm/index.js",
6
- "type": "module",
7
- "bin": {
8
- "mail-magic": "dist/esm/bin/mail-magic.js"
9
- },
10
- "exports": {
11
- ".": {
12
- "import": "./dist/esm/index.js",
13
- "require": "./dist/cjs/index.js"
14
- }
15
- },
16
- "files": [
17
- "dist",
18
- "docs",
19
- "README.md",
20
- "CHANGES"
21
- ],
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/technomoron/mail-magic.git",
25
- "directory": "packages/mail-magic"
26
- },
27
- "scripts": {
28
- "start": "node dist/esm/index.js",
29
- "dev": "NODE_ENV=development nodemon --watch 'src/**/*.ts' --watch 'config/**/*.*' --watch '.env' --exec 'tsx' src/index.ts",
30
- "run": "NODE_ENV=production npm run start",
31
- "build:esm": "tsc --project tsconfig/tsconfig.esm.json",
32
- "build:cjs": "node scripts/add-shebang.cjs --cjs-only",
33
- "build": "npm run build:esm && npm run build:cjs",
34
- "postbuild": "node scripts/add-shebang.cjs",
35
- "prepack": "npm run build",
36
- "test": "vitest run",
37
- "test:watch": "vitest",
38
- "scrub": "rm -rf ./node_modules/ ./dist/ pnpm-lock.yaml",
39
- "lint": "node ../../node_modules/eslint/bin/eslint.js --config ../../eslint.config.mjs --no-error-on-unmatched-pattern --ext .js,.cjs,.mjs,.ts,.mts,.tsx,.vue,.json ./",
40
- "lintfix": "node ../../node_modules/eslint/bin/eslint.js --config ../../eslint.config.mjs --fix --no-error-on-unmatched-pattern --ext .js,.cjs,.mjs,.ts,.mts,.tsx,.vue,.json ./",
41
- "pretty": "node ../../node_modules/prettier/bin/prettier.cjs --config ../../.prettierrc --write \"**/*.{js,jsx,cjs,mjs,ts,tsx,mts,vue,json,md}\"",
42
- "format": "npm run lintfix && npm run pretty",
43
- "cleanbuild": "rm -rf ./dist/ && npm run format && npm run build",
44
- "lintconfig": "node ../../lintconfig.cjs"
45
- },
46
- "keywords": [],
47
- "author": "Bjørn Erik Jacobsen",
48
- "license": "MIT",
49
- "copyright": "Copyright (c) 2025 Bjørn Erik Jacobsen",
50
- "bugs": {
51
- "url": "https://github.com/technomoron/mail-magic/issues"
52
- },
53
- "dependencies": {
54
- "@technomoron/api-server-base": "2.0.0-beta.18",
55
- "@technomoron/env-loader": "^1.0.8",
56
- "@technomoron/unyuck": "^1.0.4",
57
- "bcryptjs": "^3.0.2",
58
- "dotenv": "^16.4.5",
59
- "email-addresses": "^5.0.0",
60
- "html-to-text": "^9.0.5",
61
- "nanoid": "^5.1.6",
62
- "nodemailer": "^6.10.1",
63
- "nunjucks": "^3.2.4",
64
- "sequelize": "^6.37.7",
65
- "sqlite3": "^5.1.7",
66
- "swagger-jsdoc": "^6.2.8",
67
- "swagger-ui-express": "^5.0.1",
68
- "zod": "^4.1.5"
69
- },
70
- "devDependencies": {
71
- "@types/express": "^5.0.6",
72
- "@types/html-to-text": "^9.0.4",
73
- "@types/nodemailer": "^6.4.19",
74
- "@types/nunjucks": "^3.2.6",
75
- "@types/supertest": "^6.0.3",
76
- "mailparser": "^3.9.1",
77
- "nodemon": "^3.1.10",
78
- "smtp-server": "^3.18.0",
79
- "supertest": "^7.1.4",
80
- "tsx": "^4.20.5",
81
- "typescript": "^5.9.3",
82
- "vitest": "^4.0.16"
83
- },
84
- "homepage": "https://github.com/technomoron/mail-magic#readme",
85
- "packageManager": "pnpm@10.26.1+sha512.664074abc367d2c9324fdc18037097ce0a8f126034160f709928e9e9f95d98714347044e5c3164d65bd5da6c59c6be362b107546292a8eecb7999196e5ce58fa"
86
- }
2
+ "name": "@technomoron/mail-magic",
3
+ "version": "1.0.41",
4
+ "main": "dist/cjs/index.js",
5
+ "module": "dist/esm/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "mail-magic": "dist/esm/bin/mail-magic.js"
9
+ },
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/cjs/index.d.ts",
13
+ "import": "./dist/esm/index.js",
14
+ "require": "./dist/cjs/index.js"
15
+ }
16
+ },
17
+ "files": [
18
+ "dist",
19
+ "docs",
20
+ "examples",
21
+ "README.md",
22
+ "CHANGES"
23
+ ],
24
+ "repository": {
25
+ "type": "git",
26
+ "url": "git+https://github.com/technomoron/mail-magic.git",
27
+ "directory": "packages/server"
28
+ },
29
+ "keywords": [],
30
+ "author": "Bjørn Erik Jacobsen",
31
+ "license": "MIT",
32
+ "copyright": "Copyright (c) 2025 Bjørn Erik Jacobsen",
33
+ "bugs": {
34
+ "url": "https://github.com/technomoron/mail-magic/issues"
35
+ },
36
+ "dependencies": {
37
+ "@technomoron/api-server-base": "2.0.0-beta.20",
38
+ "@technomoron/env-loader": "^1.0.8",
39
+ "@technomoron/unyuck": "^1.0.4",
40
+ "bcryptjs": "^3.0.2",
41
+ "dotenv": "^16.4.5",
42
+ "email-addresses": "^5.0.0",
43
+ "html-to-text": "^9.0.5",
44
+ "nanoid": "^5.1.6",
45
+ "nodemailer": "^6.10.1",
46
+ "nunjucks": "^3.2.4",
47
+ "sequelize": "^6.37.7",
48
+ "sqlite3": "^5.1.7",
49
+ "swagger-jsdoc": "^6.2.8",
50
+ "swagger-ui-express": "^5.0.1",
51
+ "zod": "^4.1.5"
52
+ },
53
+ "devDependencies": {
54
+ "@types/express": "^5.0.6",
55
+ "@types/html-to-text": "^9.0.4",
56
+ "@types/nodemailer": "^6.4.19",
57
+ "@types/nunjucks": "^3.2.6",
58
+ "@types/supertest": "^6.0.3",
59
+ "mailparser": "^3.9.1",
60
+ "nodemon": "^3.1.10",
61
+ "smtp-server": "^3.18.0",
62
+ "supertest": "^7.1.4",
63
+ "tsx": "^4.20.5",
64
+ "typescript": "^5.9.3",
65
+ "vitest": "^4.0.16"
66
+ },
67
+ "homepage": "https://github.com/technomoron/mail-magic#readme",
68
+ "scripts": {
69
+ "start": "node dist/esm/index.js",
70
+ "dev": "NODE_ENV=development nodemon --watch 'src/**/*.ts' --watch 'config/**/*.*' --watch '.env' --exec 'tsx' src/index.ts",
71
+ "run": "NODE_ENV=production run-s start",
72
+ "sync:shared": "node ../../scripts/sync-shared-code.cjs >/dev/null",
73
+ "build:esm": "tsc --project tsconfig/tsconfig.esm.json",
74
+ "build:cjs": "node scripts/add-shebang.cjs --cjs-only",
75
+ "build": "run-s sync:shared build:esm build:cjs",
76
+ "postbuild": "node scripts/add-shebang.cjs",
77
+ "test:unit": "vitest run --silent --reporter=dot",
78
+ "test": "run-s --silent sync:shared test:unit",
79
+ "test:watch": "vitest",
80
+ "scrub": "rimraf ./node_modules/ ./dist/ pnpm-lock.yaml package-lock.json yarn.lock",
81
+ "lint": "node ../../node_modules/eslint/bin/eslint.js --config ../../eslint.config.mjs --no-error-on-unmatched-pattern ./",
82
+ "lintfix": "node ../../node_modules/eslint/bin/eslint.js --config ../../eslint.config.mjs --fix --no-error-on-unmatched-pattern ./",
83
+ "pretty": "node ../../node_modules/prettier/bin/prettier.cjs --config ../../.prettierrc --write \"**/*.{js,jsx,cjs,mjs,ts,tsx,mts,vue,json,md}\"",
84
+ "format": "run-s lintfix pretty",
85
+ "cleanbuild": "run-s clean:dist format build",
86
+ "lintconfig": "node ../../lintconfig.cjs",
87
+ "clean:dist": "rimraf ./dist/",
88
+ "release": "bash ../../scripts/release-package.sh .",
89
+ "release:check": "bash ../../scripts/release-package-check.sh ."
90
+ }
91
+ }