backend-manager 5.0.202 → 5.0.203
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/CHANGELOG.md +5 -0
- package/package.json +1 -1
- package/src/manager/helpers/settings.js +26 -7
- package/TODO-CHARGEBLAST.md +0 -32
- package/TODO-email-auth.md +0 -14
package/CHANGELOG.md
CHANGED
|
@@ -14,6 +14,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
14
14
|
- `Fixed` for any bug fixes.
|
|
15
15
|
- `Security` in case of vulnerabilities.
|
|
16
16
|
|
|
17
|
+
# [5.0.203] - 2026-05-13
|
|
18
|
+
### Fixed
|
|
19
|
+
- `Settings.resolve()` now surfaces a clear `No schema for <METHOD> request: expected <schema>/<method>.js or <schema>/index.js` error (code 500) when both the method-specific schema (e.g. `delete.js`) and the `index.js` fallback are absent. Previously the raw Node `Cannot find module .../<schema>/index.js` error propagated to consumers, leaking the require stack and surfacing the internal `/workspace/...` deploy path.
|
|
20
|
+
- Schema files that exist but throw (syntax error, runtime error) are now re-thrown directly instead of being silently masked by an unintended fallback to `index.js`. The real error surfaces, making bugs in schema files debuggable.
|
|
21
|
+
|
|
17
22
|
# [5.0.202] - 2026-05-12
|
|
18
23
|
### Added
|
|
19
24
|
- **`src/defaults/CLAUDE.md`** — new file shipped to consumer projects, marker-wrapped with `# ========== Default Values ==========` / `# ========== Custom Values ==========`. Framework section stays live-synced across `npx mgr setup` while the Custom section is preserved verbatim. Aligns BEM with EM/BXM/UJM, which already ship a consumer-facing default CLAUDE.md.
|
package/package.json
CHANGED
|
@@ -47,19 +47,38 @@ Settings.prototype.resolve = function (assistant, schema, settings, options) {
|
|
|
47
47
|
const method = (assistant?.request?.method || '').toLowerCase();
|
|
48
48
|
const methodFile = `${method}.js`;
|
|
49
49
|
const schemaFile = options.schema.replace('.js', '');
|
|
50
|
-
let schemaPath;
|
|
51
50
|
|
|
52
|
-
// First try method-specific schema (e.g., test/get.js, test/post.js)
|
|
53
51
|
const methodSchemaPath = path.resolve(options.dir, `${schemaFile}/${methodFile}`);
|
|
52
|
+
const indexSchemaPath = path.resolve(options.dir, `${schemaFile}/index.js`);
|
|
53
|
+
|
|
54
|
+
// Helper: only fall back when THIS specific file is missing.
|
|
55
|
+
// If the file exists but throws (syntax error, runtime error, etc.) we re-throw
|
|
56
|
+
// so the real problem surfaces instead of being masked by a misleading fallback.
|
|
57
|
+
const isMissingModule = (err, expectedPath) => err
|
|
58
|
+
&& err.code === 'MODULE_NOT_FOUND'
|
|
59
|
+
&& typeof err.message === 'string'
|
|
60
|
+
&& err.message.includes(expectedPath);
|
|
54
61
|
|
|
55
62
|
try {
|
|
56
63
|
schema = loadSchema(assistant, methodSchemaPath);
|
|
57
64
|
assistant.log(`Settings.resolve(): Loaded method-specific schema: ${schemaFile}/${methodFile}`);
|
|
58
|
-
} catch (
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
65
|
+
} catch (methodErr) {
|
|
66
|
+
if (!isMissingModule(methodErr, methodSchemaPath)) {
|
|
67
|
+
throw methodErr;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
try {
|
|
71
|
+
schema = loadSchema(assistant, indexSchemaPath);
|
|
72
|
+
assistant.log(`Settings.resolve(): Method-specific schema not found, using main schema fallback`);
|
|
73
|
+
} catch (indexErr) {
|
|
74
|
+
if (!isMissingModule(indexErr, indexSchemaPath)) {
|
|
75
|
+
throw indexErr;
|
|
76
|
+
}
|
|
77
|
+
throw assistant.errorify(
|
|
78
|
+
`No schema for ${method.toUpperCase()} request: expected ${schemaFile}/${methodFile} or ${schemaFile}/index.js`,
|
|
79
|
+
{code: 500},
|
|
80
|
+
);
|
|
81
|
+
}
|
|
63
82
|
}
|
|
64
83
|
}
|
|
65
84
|
|
package/TODO-CHARGEBLAST.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
As for the AMEX enrollment, AMEX alerts are not supported on Stripe/Shopify. To enable them, you’ll need a dedicated AMEX MID and a payment orchestrator to route all AMEX transactions through that dedicated MID. Using a dedicated AMEX MID allows for a dispute rate of up to 5%, so routing all AMEX traffic through it will significantly reduce your dispute rate on Stripe.
|
|
2
|
-
|
|
3
|
-
06:44 PM
|
|
4
|
-
For Discover,
|
|
5
|
-
|
|
6
|
-
In order to enroll in Discover coverage, you will need to do the following:
|
|
7
|
-
|
|
8
|
-
First, provide us with details about your business below:
|
|
9
|
-
- Merchant Legal Name:
|
|
10
|
-
- Merchant DBA Name:
|
|
11
|
-
- Merchant Registered Street Address:
|
|
12
|
-
- City:
|
|
13
|
-
- Country:
|
|
14
|
-
- State/Province:
|
|
15
|
-
- ZIP/Postal Code:
|
|
16
|
-
|
|
17
|
-
Second, you must request from your payment processor’s support for a few pieces of information. To do so, please follow the steps below and send them the email template below.
|
|
18
|
-
|
|
19
|
-
""I am enrolling for Discover Ethoca Alerts via my third-party vendor, Chargeblast. I need my 15-Digit Discover SE number. Can you please provide these pieces of information to me ASAP? Let me know if you need any additional info from me. Please feel free to provide me with these pieces of information piecemeal.”
|
|
20
|
-
|
|
21
|
-
06:44 PM
|
|
22
|
-
For AMEX If you’d like to proceed with obtaining a dedicated AMEX MID, we’d be happy to arrange an introduction for you.
|
|
23
|
-
|
|
24
|
-
06:45 PM
|
|
25
|
-
Avatar of Zander
|
|
26
|
-
Zander
|
|
27
|
-
Are we still connected?
|
|
28
|
-
|
|
29
|
-
06:56 PM
|
|
30
|
-
Avatar of Zander
|
|
31
|
-
Zander
|
|
32
|
-
Since this chat has been inactive, I’ll close it for now. If you have more questions, feel free to contact us at any time. Have a great day ahead!
|
package/TODO-email-auth.md
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
https://github.com/disposable-email-domains/disposable-email-domains?tab=readme-ov-file
|
|
2
|
-
https://www.npmjs.com/package/disposable-domains
|
|
3
|
-
https://github.com/tompec/disposable-email-domains
|
|
4
|
-
|
|
5
|
-
Two repos:
|
|
6
|
-
|
|
7
|
-
Repo Domains Approach
|
|
8
|
-
disposable-email-domains/disposable-email-domains 5,359 Curated, conservative, high confidence
|
|
9
|
-
ivolo/disposable-email-domains 121,569 Aggressive, aggregated from many sources, more false positives
|
|
10
|
-
Our current list has 854 — so even the smaller curated list is 6x larger.
|
|
11
|
-
|
|
12
|
-
For our use case (currently only used to skip marketing sync, not blocking signups), I'd recommend the 5,359 curated list — it's comprehensive enough without being overly aggressive. And if we ever do use it for blocking signups, the false positive risk is much lower.
|
|
13
|
-
|
|
14
|
-
Want to swap to that one?
|