@monok/server 2.2.0 → 3.1.0
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/AGENTS.md +11 -7
- package/README.md +22 -13
- package/dist/affiliate.d.ts.map +1 -1
- package/dist/affiliate.js +15 -8
- package/dist/affiliate.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/web.d.ts +3 -4
- package/dist/web.d.ts.map +1 -1
- package/dist/web.js +14 -20
- package/dist/web.js.map +1 -1
- package/dist-cjs/affiliate.js +15 -8
- package/dist-cjs/affiliate.js.map +1 -1
- package/dist-cjs/web.js +14 -20
- package/dist-cjs/web.js.map +1 -1
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -222,7 +222,7 @@ If `getSiteInfo` is omitted, `/info` returns this authenticated fallback:
|
|
|
222
222
|
```json
|
|
223
223
|
{
|
|
224
224
|
"js_scripts": "Disabled",
|
|
225
|
-
"version": "
|
|
225
|
+
"version": "3.1.0",
|
|
226
226
|
"name": "Custom CMS",
|
|
227
227
|
"logo": "",
|
|
228
228
|
"categories": [],
|
|
@@ -366,11 +366,13 @@ Express `trust proxy` for the exact trusted proxy topology so `req.ip` is the
|
|
|
366
366
|
visitor rather than the proxy. Never trust arbitrary forwarded headers.
|
|
367
367
|
|
|
368
368
|
The merchant-facing link is the active default offer's exact destination URL
|
|
369
|
-
with `
|
|
369
|
+
with `ref=<publisher workspace referral code>`. The middleware exchanges
|
|
370
370
|
that code through Monok using the workspace API key, stores the returned signed
|
|
371
371
|
`monok_attr` token in an HttpOnly, Secure, SameSite=Lax cookie, and redirects to
|
|
372
|
-
the same URL without `
|
|
373
|
-
|
|
372
|
+
the same URL without `ref`. `ref` and legacy `monok_ref` are accepted and removed from the landing URL.
|
|
373
|
+
Setting `referralQueryParameter` to a different custom name replaces these
|
|
374
|
+
defaults. It also accepts signed `monok_attr` handoffs
|
|
375
|
+
from Monok redirect links. `ref` is public; `monok_attr` is internal and
|
|
374
376
|
must not be presented as the affiliate's share URL. The offer controls
|
|
375
377
|
attribution duration; cookie expiry comes from the token. Do not add a
|
|
376
378
|
merchant-configured attribution duration. Only set `secure: false` for local
|
|
@@ -505,9 +507,11 @@ or `/postfilter`.
|
|
|
505
507
|
|
|
506
508
|
## Fetch / Cloudflare hosts
|
|
507
509
|
|
|
508
|
-
Version
|
|
510
|
+
Version 3.0 provides `@monok/server/web` with `createMonokHandler`. Use it instead of
|
|
509
511
|
Express on Fetch runtimes. It shares the documented content endpoint/metadata/
|
|
510
|
-
search/acknowledgement contract.
|
|
511
|
-
is no
|
|
512
|
+
search/acknowledgement contract. The host owns image persistence in `onArticle`;
|
|
513
|
+
there is no storage callback, automatic image URL fetch, filesystem or Express
|
|
514
|
+
import in this entry point. `decodeThumbImage` is an optional pure JPEG decoder.
|
|
515
|
+
Its `onArticle` context
|
|
512
516
|
always resolves action to draft or publish. An acknowledgement follows durable
|
|
513
517
|
host persistence, never substitutes for the later publication linkback.
|
package/README.md
CHANGED
|
@@ -247,10 +247,12 @@ Content-only integrations can ignore it completely.
|
|
|
247
247
|
|
|
248
248
|
Affiliates can link directly to an active default offer's landing URL with the
|
|
249
249
|
publisher workspace referral code, for example
|
|
250
|
-
`https://example.com/pricing?
|
|
250
|
+
`https://example.com/pricing?ref=ABC12345`. The middleware exchanges that
|
|
251
251
|
code with Monok using the merchant API key, preserves the returned signed
|
|
252
252
|
`monok_attr` token in an HttpOnly, SameSite=Lax cookie, and redirects to the same
|
|
253
|
-
URL without `
|
|
253
|
+
URL without `ref`. `ref` and legacy `monok_ref` are accepted and removed from the landing URL.
|
|
254
|
+
Setting `referralQueryParameter` to a different custom name replaces these
|
|
255
|
+
defaults. It also accepts signed `monok_attr` handoffs from Monok
|
|
254
256
|
redirect links. The offer controls the attribution window and cookie expiry.
|
|
255
257
|
Mount it before the merchant's landing and signup routes. After the customer has
|
|
256
258
|
been durably created, register the referral using the merchant's own stable
|
|
@@ -395,7 +397,7 @@ npm run build
|
|
|
395
397
|
```
|
|
396
398
|
|
|
397
399
|
|
|
398
|
-
## Cloudflare Workers / Fetch content adapter (
|
|
400
|
+
## Cloudflare Workers / Fetch content adapter (3.0)
|
|
399
401
|
|
|
400
402
|
Use `@monok/server/web` for Workers, Astro server routes, or another Fetch-based
|
|
401
403
|
runtime. This separate export does not import Express, node-fetch or a filesystem.
|
|
@@ -405,21 +407,28 @@ Existing Express and affiliate imports keep their current behavior.
|
|
|
405
407
|
import { createMonokHandler } from '@monok/server/web';
|
|
406
408
|
const handle = createMonokHandler({
|
|
407
409
|
apiKey: workspaceApiKey,
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
const image = await saveThumbImage();
|
|
412
|
-
await persistInYourCms(article, { action, image });
|
|
410
|
+
onArticle: async (article, { action }) => {
|
|
411
|
+
// Implement persistence in your application, including any image handling.
|
|
412
|
+
await persistInYourCms(article, { action });
|
|
413
413
|
},
|
|
414
414
|
});
|
|
415
415
|
// In your Worker/route: return handle(request)
|
|
416
416
|
```
|
|
417
417
|
|
|
418
|
+
`persistInYourCms` is your own application function, not a package export.
|
|
419
|
+
The original article, including `thumbImageData`, `thumbnail` and other fields,
|
|
420
|
+
is passed to it unchanged. Store, transform or ignore images as your application
|
|
421
|
+
requires. No image-storage callback or image URL request is built into the handler.
|
|
422
|
+
|
|
423
|
+
For convenience, `decodeThumbImage(article, maxImageBytes?)` is an optional export
|
|
424
|
+
that validates and decodes the supplied JPEG base64 into a `Uint8Array`, or returns
|
|
425
|
+
`undefined` when absent. Its default decoded-size limit is 15 MiB. It does not save
|
|
426
|
+
anything, fetch a URL or change the article. You can use it inside your own image
|
|
427
|
+
storage implementation or ignore it entirely.
|
|
428
|
+
|
|
418
429
|
The default base is `/api/monok`. Auth headers, `/info`, `/push`, `/postfilter`,
|
|
419
430
|
and accepted acknowledgements match the Express contract. Default action is draft.
|
|
420
|
-
`
|
|
421
|
-
|
|
422
|
-
one delivery reuse the same promise. Implement durable retry/idempotency and CMS
|
|
431
|
+
`getSiteInfo` and `searchArticles` are optional, as in the Express adapter.
|
|
432
|
+
`maxBodyBytes` defaults to 20 MiB. Implement durable retry/idempotency and CMS
|
|
423
433
|
publication callbacks in the host adapter. The web `sendMonokLinkback` uses native
|
|
424
|
-
fetch and the same Monok callback wire format.
|
|
425
|
-
when independently implementing that integration; this entry point is content-only.
|
|
434
|
+
fetch and the same Monok callback wire format. This entry point is content-only.
|
package/dist/affiliate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affiliate.d.ts","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAY,MAAM,SAAS,CAAC;AAG/E,OAAO,KAAK,EACV,gCAAgC,EAChC,0BAA0B,EAE3B,MAAM,YAAY,CAAC;AAgBpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B;KACF;CACF;AAqHD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,gCAAqC,GAC7C,cAAc,
|
|
1
|
+
{"version":3,"file":"affiliate.d.ts","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,cAAc,EAAY,MAAM,SAAS,CAAC;AAG/E,OAAO,KAAK,EACV,gCAAgC,EAChC,0BAA0B,EAE3B,MAAM,YAAY,CAAC;AAgBpB,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,gBAAgB,CAAC,EAAE,MAAM,CAAC;SAC3B;KACF;CACF;AAqHD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,GAAE,gCAAqC,GAC7C,cAAc,CAiFhB;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,0BAA0B,EAClC,OAAO,GAAE,IAAI,CACX,gCAAgC,EAChC,YAAY,GAAG,cAAc,GAAG,QAAQ,CACpC,GACL,IAAI,CAkBN"}
|
package/dist/affiliate.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHmac } from "node:crypto";
|
|
2
2
|
import { createMonokAttribution } from "./client.js";
|
|
3
3
|
const DEFAULT_QUERY_PARAMETER = "monok_attr";
|
|
4
|
-
const DEFAULT_REFERRAL_QUERY_PARAMETER = "
|
|
4
|
+
const DEFAULT_REFERRAL_QUERY_PARAMETER = "ref";
|
|
5
5
|
const DEFAULT_COOKIE_NAME = "monok_attr";
|
|
6
6
|
const MAX_TOKEN_LENGTH = 4096;
|
|
7
7
|
const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
@@ -67,7 +67,7 @@ function preferredLanguage(req) {
|
|
|
67
67
|
function visitorIp(req) {
|
|
68
68
|
return req.ip ?? req.socket.remoteAddress ?? "";
|
|
69
69
|
}
|
|
70
|
-
function publicRequestUrl(req,
|
|
70
|
+
function publicRequestUrl(req, referralQueryParameters, publicOrigin) {
|
|
71
71
|
const forwardedProtocol = queryString(req.headers["x-forwarded-proto"])?.split(",")[0]?.trim();
|
|
72
72
|
const forwardedHost = queryString(req.headers["x-forwarded-host"])?.split(",")[0]?.trim();
|
|
73
73
|
const host = forwardedHost ?? req.get("host");
|
|
@@ -75,7 +75,8 @@ function publicRequestUrl(req, referralQueryParameter, publicOrigin) {
|
|
|
75
75
|
? new URL(publicOrigin).origin
|
|
76
76
|
: `${forwardedProtocol ?? req.protocol}://${host}`;
|
|
77
77
|
const url = new URL(req.originalUrl, origin);
|
|
78
|
-
|
|
78
|
+
for (const parameter of referralQueryParameters)
|
|
79
|
+
url.searchParams.delete(parameter);
|
|
79
80
|
url.hash = "";
|
|
80
81
|
return url.toString();
|
|
81
82
|
}
|
|
@@ -103,6 +104,10 @@ function storeAttribution(req, res, attribution, cookieName, options) {
|
|
|
103
104
|
export function monokAffiliateAttribution(options = {}) {
|
|
104
105
|
const queryParameter = options.queryParameter ?? DEFAULT_QUERY_PARAMETER;
|
|
105
106
|
const referralQueryParameter = options.referralQueryParameter ?? DEFAULT_REFERRAL_QUERY_PARAMETER;
|
|
107
|
+
// Keep custom merchant parameters isolated; the standard names are aliases.
|
|
108
|
+
const referralQueryParameters = referralQueryParameter === "monok_ref"
|
|
109
|
+
? ["monok_ref", "ref"]
|
|
110
|
+
: referralQueryParameter === "ref" ? ["ref", "monok_ref"] : [referralQueryParameter];
|
|
106
111
|
const cookieName = options.cookieName ?? DEFAULT_COOKIE_NAME;
|
|
107
112
|
if (!queryParameter || !referralQueryParameter || !cookieName) {
|
|
108
113
|
throw new Error("Affiliate query parameters and cookie name cannot be empty");
|
|
@@ -132,21 +137,23 @@ export function monokAffiliateAttribution(options = {}) {
|
|
|
132
137
|
}
|
|
133
138
|
if (validToken(queryToken)) {
|
|
134
139
|
if (options.cleanUrl ?? true) {
|
|
135
|
-
res.redirect(302, cleanRequestUrl(req, queryParameter));
|
|
140
|
+
res.redirect(302, cleanRequestUrl(req, queryParameter, ...referralQueryParameters));
|
|
136
141
|
return;
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
|
-
const referralCode =
|
|
144
|
+
const referralCode = referralQueryParameters
|
|
145
|
+
.map(parameter => queryString(req.query[parameter])?.trim())
|
|
146
|
+
.find(value => Boolean(value))?.toUpperCase();
|
|
140
147
|
if (referralCode && REFERRAL_CODE_PATTERN.test(referralCode)) {
|
|
141
148
|
void (async () => {
|
|
142
149
|
try {
|
|
143
150
|
if (!options.apiKey)
|
|
144
|
-
throw new Error("A Monok API key is required to capture
|
|
151
|
+
throw new Error("A Monok API key is required to capture affiliate referrals");
|
|
145
152
|
const referrer = req.get("referer");
|
|
146
153
|
const language = preferredLanguage(req);
|
|
147
154
|
const result = await createMonokAttribution({
|
|
148
155
|
referralCode,
|
|
149
|
-
landingUrl: publicRequestUrl(req,
|
|
156
|
+
landingUrl: publicRequestUrl(req, referralQueryParameters, options.publicOrigin),
|
|
150
157
|
userAgent: req.get("user-agent") ?? "",
|
|
151
158
|
ip: visitorIp(req),
|
|
152
159
|
...(referrer ? { referrer } : {}),
|
|
@@ -161,7 +168,7 @@ export function monokAffiliateAttribution(options = {}) {
|
|
|
161
168
|
options.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
162
169
|
}
|
|
163
170
|
if (options.cleanUrl ?? true) {
|
|
164
|
-
res.redirect(302, cleanRequestUrl(req,
|
|
171
|
+
res.redirect(302, cleanRequestUrl(req, ...referralQueryParameters));
|
|
165
172
|
return;
|
|
166
173
|
}
|
|
167
174
|
next();
|
package/dist/affiliate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,gCAAgC,GAAG,
|
|
1
|
+
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -92,7 +92,7 @@ export interface LinkbackPayload {
|
|
|
92
92
|
export interface MonokAffiliateAttributionOptions {
|
|
93
93
|
/** Query parameter carrying the signed Monok attribution token. */
|
|
94
94
|
queryParameter?: string;
|
|
95
|
-
/**
|
|
95
|
+
/** Public referral parameter. Defaults to `ref`; also accepts legacy `monok_ref`. Other custom names replace both defaults. */
|
|
96
96
|
referralQueryParameter?: string;
|
|
97
97
|
/** HttpOnly cookie used to preserve attribution until signup. */
|
|
98
98
|
cookieName?: string;
|
|
@@ -132,7 +132,7 @@ export interface CreateMonokReferralPayload {
|
|
|
132
132
|
export interface CreateMonokAttributionPayload {
|
|
133
133
|
/** Public publisher workspace referral code from the merchant URL. */
|
|
134
134
|
referralCode: string;
|
|
135
|
-
/** Current merchant landing URL after removing `monok_ref
|
|
135
|
+
/** Current merchant landing URL after removing public referral parameters (`monok_ref` / `ref`). */
|
|
136
136
|
landingUrl: string;
|
|
137
137
|
/** User-Agent from the visitor's request, used for click analytics. */
|
|
138
138
|
userAgent: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/web.d.ts
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
/** Fetch/Worker content integration. This entry point has no Node or Express imports. */
|
|
2
2
|
import type { LinkbackPayload, MonokArticle, MonokArticleAction, PostFilterQuery, PostFilterResult, SiteInfoInput } from "./types.js";
|
|
3
3
|
export type { LinkbackPayload, MonokArticle, PostFilterQuery, PostFilterResult, SiteInfoInput, } from "./types.js";
|
|
4
|
-
export declare const MONOK_SERVER_VERSION = "
|
|
4
|
+
export declare const MONOK_SERVER_VERSION = "3.1.0";
|
|
5
5
|
export interface CreateMonokHandlerOptions {
|
|
6
6
|
apiKey: string;
|
|
7
7
|
basePath?: string;
|
|
8
8
|
maxBodyBytes?: number;
|
|
9
|
-
maxImageBytes?: number;
|
|
10
|
-
saveImage?: (bytes: Uint8Array, filename: string, article: MonokArticle) => Promise<string>;
|
|
11
9
|
onArticle: (article: MonokArticle, context: {
|
|
12
10
|
action: MonokArticleAction;
|
|
13
|
-
saveThumbImage: (name?: string) => Promise<string | undefined>;
|
|
14
11
|
}) => Promise<void> | void;
|
|
15
12
|
getSiteInfo?: SiteInfoInput | (() => Promise<SiteInfoInput> | SiteInfoInput);
|
|
16
13
|
searchArticles?: (query: PostFilterQuery) => Promise<PostFilterResult[]> | PostFilterResult[];
|
|
@@ -21,6 +18,8 @@ export declare class MonokRequestError extends Error {
|
|
|
21
18
|
}
|
|
22
19
|
/** The host supplies its established workspace key; keys never belong in generated frontend code. */
|
|
23
20
|
export declare function matchesMonokKey(candidate: string | null | undefined, expected: string | undefined): Promise<boolean>;
|
|
21
|
+
/** Optional JPEG convenience only. No storage, URL fetching or article mutation. */
|
|
22
|
+
export declare function decodeThumbImage(article: MonokArticle, maxImageBytes?: number): Uint8Array | undefined;
|
|
24
23
|
export declare function createMonokHandler(options: CreateMonokHandlerOptions): (request: Request) => Promise<Response>;
|
|
25
24
|
/** Send only after durable publication and public canonical availability. */
|
|
26
25
|
export declare function sendMonokLinkback(payload: LinkbackPayload, options?: {
|
package/dist/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAQ5C,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,
|
|
1
|
+
{"version":3,"file":"web.d.ts","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,eAAO,MAAM,oBAAoB,UAAU,CAAC;AAQ5C,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,CACT,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE;QACP,MAAM,EAAE,kBAAkB,CAAC;KAC5B,KACE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,aAAa,GAAG,CAAC,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,aAAa,CAAC,CAAC;IAC7E,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,gBAAgB,EAAE,CAAC,GAAG,gBAAgB,EAAE,CAAC;CAC/F;AACD,qBAAa,iBAAkB,SAAQ,KAAK;IAEjC,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AACD,qGAAqG;AACrG,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,OAAO,CAAC,OAAO,CAAC,CAUlB;AA4DD,oFAAoF;AACpF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,YAAY,EACrB,aAAa,SAAmB,GAC/B,UAAU,GAAG,SAAS,CAOxB;AACD,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,yBAAyB,GACjC,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CA8EzC;AACD,6EAA6E;AAC7E,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,eAAe,EACxB,OAAO,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CAAO,GAC5D,OAAO,CAAC,IAAI,CAAC,CAiBf"}
|
package/dist/web.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const MONOK_SERVER_VERSION = "
|
|
1
|
+
export const MONOK_SERVER_VERSION = "3.1.0";
|
|
2
2
|
const PRIVATE = {
|
|
3
3
|
"Content-Type": "application/json",
|
|
4
4
|
"Cache-Control": "private, no-store, no-cache, must-revalidate, max-age=0",
|
|
@@ -90,10 +90,20 @@ function jpeg(data, limit) {
|
|
|
90
90
|
throw new MonokRequestError(400, "Expected a JPEG image");
|
|
91
91
|
return bytes;
|
|
92
92
|
}
|
|
93
|
+
/** Optional JPEG convenience only. No storage, URL fetching or article mutation. */
|
|
94
|
+
export function decodeThumbImage(article, maxImageBytes = 15 * 1024 * 1024) {
|
|
95
|
+
if (!Number.isSafeInteger(maxImageBytes) || maxImageBytes <= 0)
|
|
96
|
+
throw Error("Invalid image size limit");
|
|
97
|
+
if (!article.thumbImageData)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (typeof article.thumbImageData !== "string")
|
|
100
|
+
throw new MonokRequestError(400, "Invalid thumbnail");
|
|
101
|
+
return jpeg(article.thumbImageData, maxImageBytes);
|
|
102
|
+
}
|
|
93
103
|
export function createMonokHandler(options) {
|
|
94
104
|
const base = (options.basePath ?? "/api/monok").replace(/\/$/, "");
|
|
95
|
-
const maxBody = options.maxBodyBytes ?? 20 * 1024 * 1024
|
|
96
|
-
if (!
|
|
105
|
+
const maxBody = options.maxBodyBytes ?? 20 * 1024 * 1024;
|
|
106
|
+
if (!Number.isSafeInteger(maxBody) || maxBody <= 0)
|
|
97
107
|
throw Error("Invalid content size limits");
|
|
98
108
|
return async (request) => {
|
|
99
109
|
try {
|
|
@@ -159,23 +169,7 @@ export function createMonokHandler(options) {
|
|
|
159
169
|
const action = url.searchParams.get("action") ?? article.action ?? "draft";
|
|
160
170
|
if (action !== "draft" && action !== "publish")
|
|
161
171
|
throw new MonokRequestError(400, "action must be either draft or publish");
|
|
162
|
-
|
|
163
|
-
await options.onArticle(article, {
|
|
164
|
-
action,
|
|
165
|
-
saveThumbImage: (name) => {
|
|
166
|
-
if (!saved)
|
|
167
|
-
saved = (async () => {
|
|
168
|
-
if (!article.thumbImageData || !options.saveImage)
|
|
169
|
-
return undefined;
|
|
170
|
-
if (typeof article.thumbImageData !== "string")
|
|
171
|
-
throw new MonokRequestError(400, "Invalid thumbnail");
|
|
172
|
-
const filename = (name ?? article.slug ?? String(article.id)).replace(/[^a-zA-Z0-9_-]/g, "_") +
|
|
173
|
-
".jpg";
|
|
174
|
-
return options.saveImage(jpeg(article.thumbImageData, maxImage), filename, article);
|
|
175
|
-
})();
|
|
176
|
-
return saved;
|
|
177
|
-
},
|
|
178
|
-
});
|
|
172
|
+
await options.onArticle(article, { action });
|
|
179
173
|
return reply({ ok: true, status: "accepted", monokId: article.id });
|
|
180
174
|
}
|
|
181
175
|
catch (error) {
|
package/dist/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C,MAAM,OAAO,GAAG;IACd,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,yDAAyD;IAC1E,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,GAAG;IACZ,mBAAmB,EAAE,UAAU;CAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/affiliate.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createHmac } from "node:crypto";
|
|
2
2
|
import { createMonokAttribution } from "./client.js";
|
|
3
3
|
const DEFAULT_QUERY_PARAMETER = "monok_attr";
|
|
4
|
-
const DEFAULT_REFERRAL_QUERY_PARAMETER = "
|
|
4
|
+
const DEFAULT_REFERRAL_QUERY_PARAMETER = "ref";
|
|
5
5
|
const DEFAULT_COOKIE_NAME = "monok_attr";
|
|
6
6
|
const MAX_TOKEN_LENGTH = 4096;
|
|
7
7
|
const MILLISECONDS_PER_DAY = 24 * 60 * 60 * 1000;
|
|
@@ -67,7 +67,7 @@ function preferredLanguage(req) {
|
|
|
67
67
|
function visitorIp(req) {
|
|
68
68
|
return req.ip ?? req.socket.remoteAddress ?? "";
|
|
69
69
|
}
|
|
70
|
-
function publicRequestUrl(req,
|
|
70
|
+
function publicRequestUrl(req, referralQueryParameters, publicOrigin) {
|
|
71
71
|
const forwardedProtocol = queryString(req.headers["x-forwarded-proto"])?.split(",")[0]?.trim();
|
|
72
72
|
const forwardedHost = queryString(req.headers["x-forwarded-host"])?.split(",")[0]?.trim();
|
|
73
73
|
const host = forwardedHost ?? req.get("host");
|
|
@@ -75,7 +75,8 @@ function publicRequestUrl(req, referralQueryParameter, publicOrigin) {
|
|
|
75
75
|
? new URL(publicOrigin).origin
|
|
76
76
|
: `${forwardedProtocol ?? req.protocol}://${host}`;
|
|
77
77
|
const url = new URL(req.originalUrl, origin);
|
|
78
|
-
|
|
78
|
+
for (const parameter of referralQueryParameters)
|
|
79
|
+
url.searchParams.delete(parameter);
|
|
79
80
|
url.hash = "";
|
|
80
81
|
return url.toString();
|
|
81
82
|
}
|
|
@@ -103,6 +104,10 @@ function storeAttribution(req, res, attribution, cookieName, options) {
|
|
|
103
104
|
export function monokAffiliateAttribution(options = {}) {
|
|
104
105
|
const queryParameter = options.queryParameter ?? DEFAULT_QUERY_PARAMETER;
|
|
105
106
|
const referralQueryParameter = options.referralQueryParameter ?? DEFAULT_REFERRAL_QUERY_PARAMETER;
|
|
107
|
+
// Keep custom merchant parameters isolated; the standard names are aliases.
|
|
108
|
+
const referralQueryParameters = referralQueryParameter === "monok_ref"
|
|
109
|
+
? ["monok_ref", "ref"]
|
|
110
|
+
: referralQueryParameter === "ref" ? ["ref", "monok_ref"] : [referralQueryParameter];
|
|
106
111
|
const cookieName = options.cookieName ?? DEFAULT_COOKIE_NAME;
|
|
107
112
|
if (!queryParameter || !referralQueryParameter || !cookieName) {
|
|
108
113
|
throw new Error("Affiliate query parameters and cookie name cannot be empty");
|
|
@@ -132,21 +137,23 @@ export function monokAffiliateAttribution(options = {}) {
|
|
|
132
137
|
}
|
|
133
138
|
if (validToken(queryToken)) {
|
|
134
139
|
if (options.cleanUrl ?? true) {
|
|
135
|
-
res.redirect(302, cleanRequestUrl(req, queryParameter));
|
|
140
|
+
res.redirect(302, cleanRequestUrl(req, queryParameter, ...referralQueryParameters));
|
|
136
141
|
return;
|
|
137
142
|
}
|
|
138
143
|
}
|
|
139
|
-
const referralCode =
|
|
144
|
+
const referralCode = referralQueryParameters
|
|
145
|
+
.map(parameter => queryString(req.query[parameter])?.trim())
|
|
146
|
+
.find(value => Boolean(value))?.toUpperCase();
|
|
140
147
|
if (referralCode && REFERRAL_CODE_PATTERN.test(referralCode)) {
|
|
141
148
|
void (async () => {
|
|
142
149
|
try {
|
|
143
150
|
if (!options.apiKey)
|
|
144
|
-
throw new Error("A Monok API key is required to capture
|
|
151
|
+
throw new Error("A Monok API key is required to capture affiliate referrals");
|
|
145
152
|
const referrer = req.get("referer");
|
|
146
153
|
const language = preferredLanguage(req);
|
|
147
154
|
const result = await createMonokAttribution({
|
|
148
155
|
referralCode,
|
|
149
|
-
landingUrl: publicRequestUrl(req,
|
|
156
|
+
landingUrl: publicRequestUrl(req, referralQueryParameters, options.publicOrigin),
|
|
150
157
|
userAgent: req.get("user-agent") ?? "",
|
|
151
158
|
ip: visitorIp(req),
|
|
152
159
|
...(referrer ? { referrer } : {}),
|
|
@@ -161,7 +168,7 @@ export function monokAffiliateAttribution(options = {}) {
|
|
|
161
168
|
options.onError?.(error instanceof Error ? error : new Error(String(error)));
|
|
162
169
|
}
|
|
163
170
|
if (options.cleanUrl ?? true) {
|
|
164
|
-
res.redirect(302, cleanRequestUrl(req,
|
|
171
|
+
res.redirect(302, cleanRequestUrl(req, ...referralQueryParameters));
|
|
165
172
|
return;
|
|
166
173
|
}
|
|
167
174
|
next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAOrD,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,gCAAgC,GAAG,
|
|
1
|
+
{"version":3,"file":"affiliate.js","sourceRoot":"","sources":["../src/affiliate.ts"],"names":[],"mappings":"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"}
|
package/dist-cjs/web.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export const MONOK_SERVER_VERSION = "
|
|
1
|
+
export const MONOK_SERVER_VERSION = "3.1.0";
|
|
2
2
|
const PRIVATE = {
|
|
3
3
|
"Content-Type": "application/json",
|
|
4
4
|
"Cache-Control": "private, no-store, no-cache, must-revalidate, max-age=0",
|
|
@@ -90,10 +90,20 @@ function jpeg(data, limit) {
|
|
|
90
90
|
throw new MonokRequestError(400, "Expected a JPEG image");
|
|
91
91
|
return bytes;
|
|
92
92
|
}
|
|
93
|
+
/** Optional JPEG convenience only. No storage, URL fetching or article mutation. */
|
|
94
|
+
export function decodeThumbImage(article, maxImageBytes = 15 * 1024 * 1024) {
|
|
95
|
+
if (!Number.isSafeInteger(maxImageBytes) || maxImageBytes <= 0)
|
|
96
|
+
throw Error("Invalid image size limit");
|
|
97
|
+
if (!article.thumbImageData)
|
|
98
|
+
return undefined;
|
|
99
|
+
if (typeof article.thumbImageData !== "string")
|
|
100
|
+
throw new MonokRequestError(400, "Invalid thumbnail");
|
|
101
|
+
return jpeg(article.thumbImageData, maxImageBytes);
|
|
102
|
+
}
|
|
93
103
|
export function createMonokHandler(options) {
|
|
94
104
|
const base = (options.basePath ?? "/api/monok").replace(/\/$/, "");
|
|
95
|
-
const maxBody = options.maxBodyBytes ?? 20 * 1024 * 1024
|
|
96
|
-
if (!
|
|
105
|
+
const maxBody = options.maxBodyBytes ?? 20 * 1024 * 1024;
|
|
106
|
+
if (!Number.isSafeInteger(maxBody) || maxBody <= 0)
|
|
97
107
|
throw Error("Invalid content size limits");
|
|
98
108
|
return async (request) => {
|
|
99
109
|
try {
|
|
@@ -159,23 +169,7 @@ export function createMonokHandler(options) {
|
|
|
159
169
|
const action = url.searchParams.get("action") ?? article.action ?? "draft";
|
|
160
170
|
if (action !== "draft" && action !== "publish")
|
|
161
171
|
throw new MonokRequestError(400, "action must be either draft or publish");
|
|
162
|
-
|
|
163
|
-
await options.onArticle(article, {
|
|
164
|
-
action,
|
|
165
|
-
saveThumbImage: (name) => {
|
|
166
|
-
if (!saved)
|
|
167
|
-
saved = (async () => {
|
|
168
|
-
if (!article.thumbImageData || !options.saveImage)
|
|
169
|
-
return undefined;
|
|
170
|
-
if (typeof article.thumbImageData !== "string")
|
|
171
|
-
throw new MonokRequestError(400, "Invalid thumbnail");
|
|
172
|
-
const filename = (name ?? article.slug ?? String(article.id)).replace(/[^a-zA-Z0-9_-]/g, "_") +
|
|
173
|
-
".jpg";
|
|
174
|
-
return options.saveImage(jpeg(article.thumbImageData, maxImage), filename, article);
|
|
175
|
-
})();
|
|
176
|
-
return saved;
|
|
177
|
-
},
|
|
178
|
-
});
|
|
172
|
+
await options.onArticle(article, { action });
|
|
179
173
|
return reply({ ok: true, status: "accepted", monokId: article.id });
|
|
180
174
|
}
|
|
181
175
|
catch (error) {
|
package/dist-cjs/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,MAAM,oBAAoB,GAAG,OAAO,CAAC;AAC5C,MAAM,OAAO,GAAG;IACd,cAAc,EAAE,kBAAkB;IAClC,eAAe,EAAE,yDAAyD;IAC1E,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,GAAG;IACZ,mBAAmB,EAAE,UAAU;CAChC,CAAC;
|
|
1
|
+
{"version":3,"file":"web.js","sourceRoot":"","sources":["../src/web.ts"],"names":[],"mappings":"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"}
|