@heavybit/shared-lib 1.1.0 → 1.3.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/dist/cjs/contracts/editorial-draft.js +9 -0
- package/dist/cjs/contracts/editorial-draft.js.map +1 -1
- package/dist/cjs/express/index.js +1 -0
- package/dist/cjs/express/index.js.map +1 -1
- package/dist/cjs/express/security.js +18 -0
- package/dist/cjs/express/security.js.map +1 -0
- package/dist/cjs/metrics/index.js +15 -0
- package/dist/cjs/metrics/index.js.map +1 -0
- package/dist/esm/contracts/editorial-draft.js +9 -0
- package/dist/esm/contracts/editorial-draft.js.map +1 -1
- package/dist/esm/express/index.js +1 -0
- package/dist/esm/express/index.js.map +1 -1
- package/dist/esm/express/security.js +11 -0
- package/dist/esm/express/security.js.map +1 -0
- package/dist/esm/metrics/index.js +6 -0
- package/dist/esm/metrics/index.js.map +1 -0
- package/dist/types/contracts/editorial-draft.d.ts +33 -0
- package/dist/types/contracts/editorial-draft.d.ts.map +1 -1
- package/dist/types/express/index.d.ts +1 -0
- package/dist/types/express/index.d.ts.map +1 -1
- package/dist/types/express/security.d.ts +9 -0
- package/dist/types/express/security.d.ts.map +1 -0
- package/dist/types/metrics/index.d.ts +7 -0
- package/dist/types/metrics/index.d.ts.map +1 -0
- package/package.json +19 -27
|
@@ -16,6 +16,8 @@ exports.EDITORIAL_DRAFT_LIMITS = {
|
|
|
16
16
|
tags: 6,
|
|
17
17
|
seoTitle: 70,
|
|
18
18
|
seoDescription: 170,
|
|
19
|
+
/** Reader-facing update note ("Updated with …"), shown under the article byline. */
|
|
20
|
+
updateNote: 300,
|
|
19
21
|
};
|
|
20
22
|
exports.DRAFT_SOURCE_ROLES = ['primary', 'corroborating'];
|
|
21
23
|
exports.DRAFT_RISKS = ['low', 'medium', 'high'];
|
|
@@ -92,6 +94,13 @@ exports.editorialDraftSubmitSchema = zod_1.z
|
|
|
92
94
|
/** Prompt slug → version used to produce the draft. */
|
|
93
95
|
promptVersions: zod_1.z.record(zod_1.z.string(), zod_1.z.number().int().positive()),
|
|
94
96
|
}),
|
|
97
|
+
/**
|
|
98
|
+
* Present when the draft updates a story editorial has already published (Phase 21.2): editorial
|
|
99
|
+
* stores it as a pending update on that story instead of creating a new one. Additive and optional.
|
|
100
|
+
*/
|
|
101
|
+
updateOf: zod_1.z
|
|
102
|
+
.object({ storyId: index_js_1.idSchema, note: text.max(exports.EDITORIAL_DRAFT_LIMITS.updateNote) })
|
|
103
|
+
.optional(),
|
|
95
104
|
})
|
|
96
105
|
.superRefine((draft, ctx) => {
|
|
97
106
|
if (draft.paragraphFactIds.length !== draft.paragraphs.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorial-draft.js","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,qDAAkD;AAElD;;;;GAIG;AACU,QAAA,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D,gEAAgE;AACnD,QAAA,sBAAsB,GAAG;IACpC,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"editorial-draft.js","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./auth.js"), exports);
|
|
18
18
|
__exportStar(require("./middleware.js"), exports);
|
|
19
19
|
__exportStar(require("./health.js"), exports);
|
|
20
|
+
__exportStar(require("./security.js"), exports);
|
|
20
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kDAAgC;AAChC,8CAA4B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,kDAAgC;AAChC,8CAA4B;AAC5B,gDAA8B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.securityHeaders = securityHeaders;
|
|
7
|
+
exports.corsMiddleware = corsMiddleware;
|
|
8
|
+
const cors_1 = __importDefault(require("cors"));
|
|
9
|
+
const helmet_1 = __importDefault(require("helmet"));
|
|
10
|
+
/** Standard security headers (helmet). Pass options only to relax a header a service genuinely needs. */
|
|
11
|
+
function securityHeaders(options) {
|
|
12
|
+
return (0, helmet_1.default)(options);
|
|
13
|
+
}
|
|
14
|
+
/** CORS for browser-facing services. An empty origin list disables CORS (no `Access-Control-*` headers). */
|
|
15
|
+
function corsMiddleware(origins, options = {}) {
|
|
16
|
+
return (0, cors_1.default)({ ...options, origin: origins.length ? origins : false });
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/express/security.ts"],"names":[],"mappings":";;;;;AAOA,0CAEC;AAGD,wCAEC;AAdD,gDAA8C;AAC9C,oDAAoD;AAKpD,yGAAyG;AACzG,SAAgB,eAAe,CAAC,OAAuB;IACrD,OAAO,IAAA,gBAAM,EAAC,OAAO,CAA8B,CAAC;AACtD,CAAC;AAED,4GAA4G;AAC5G,SAAgB,cAAc,CAAC,OAAiB,EAAE,UAAuC,EAAE;IACzF,OAAO,IAAA,cAAI,EAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAA8B,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.collectDefaultMetrics = exports.Summary = exports.Registry = exports.Histogram = exports.Gauge = exports.Counter = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Prometheus metrics. Re-exports prom-client so every service runs one version of it;
|
|
6
|
+
* services keep their own metric definitions behind a narrow interface.
|
|
7
|
+
*/
|
|
8
|
+
var prom_client_1 = require("prom-client");
|
|
9
|
+
Object.defineProperty(exports, "Counter", { enumerable: true, get: function () { return prom_client_1.Counter; } });
|
|
10
|
+
Object.defineProperty(exports, "Gauge", { enumerable: true, get: function () { return prom_client_1.Gauge; } });
|
|
11
|
+
Object.defineProperty(exports, "Histogram", { enumerable: true, get: function () { return prom_client_1.Histogram; } });
|
|
12
|
+
Object.defineProperty(exports, "Registry", { enumerable: true, get: function () { return prom_client_1.Registry; } });
|
|
13
|
+
Object.defineProperty(exports, "Summary", { enumerable: true, get: function () { return prom_client_1.Summary; } });
|
|
14
|
+
Object.defineProperty(exports, "collectDefaultMetrics", { enumerable: true, get: function () { return prom_client_1.collectDefaultMetrics; } });
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,2CAAkG;AAAzF,sGAAA,OAAO,OAAA;AAAE,oGAAA,KAAK,OAAA;AAAE,wGAAA,SAAS,OAAA;AAAE,uGAAA,QAAQ,OAAA;AAAE,sGAAA,OAAO,OAAA;AAAE,oHAAA,qBAAqB,OAAA"}
|
|
@@ -13,6 +13,8 @@ export const EDITORIAL_DRAFT_LIMITS = {
|
|
|
13
13
|
tags: 6,
|
|
14
14
|
seoTitle: 70,
|
|
15
15
|
seoDescription: 170,
|
|
16
|
+
/** Reader-facing update note ("Updated with …"), shown under the article byline. */
|
|
17
|
+
updateNote: 300,
|
|
16
18
|
};
|
|
17
19
|
export const DRAFT_SOURCE_ROLES = ['primary', 'corroborating'];
|
|
18
20
|
export const DRAFT_RISKS = ['low', 'medium', 'high'];
|
|
@@ -89,6 +91,13 @@ export const editorialDraftSubmitSchema = z
|
|
|
89
91
|
/** Prompt slug → version used to produce the draft. */
|
|
90
92
|
promptVersions: z.record(z.string(), z.number().int().positive()),
|
|
91
93
|
}),
|
|
94
|
+
/**
|
|
95
|
+
* Present when the draft updates a story editorial has already published (Phase 21.2): editorial
|
|
96
|
+
* stores it as a pending update on that story instead of creating a new one. Additive and optional.
|
|
97
|
+
*/
|
|
98
|
+
updateOf: z
|
|
99
|
+
.object({ storyId: idSchema, note: text.max(EDITORIAL_DRAFT_LIMITS.updateNote) })
|
|
100
|
+
.optional(),
|
|
92
101
|
})
|
|
93
102
|
.superRefine((draft, ctx) => {
|
|
94
103
|
if (draft.paragraphFactIds.length !== draft.paragraphs.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorial-draft.js","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,IAAI,EAAE,CAAC;IACP,QAAQ,EAAE,EAAE;IACZ,cAAc,EAAE,GAAG;
|
|
1
|
+
{"version":3,"file":"editorial-draft.js","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import cors from 'cors';
|
|
2
|
+
import helmet from 'helmet';
|
|
3
|
+
/** Standard security headers (helmet). Pass options only to relax a header a service genuinely needs. */
|
|
4
|
+
export function securityHeaders(options) {
|
|
5
|
+
return helmet(options);
|
|
6
|
+
}
|
|
7
|
+
/** CORS for browser-facing services. An empty origin list disables CORS (no `Access-Control-*` headers). */
|
|
8
|
+
export function corsMiddleware(origins, options = {}) {
|
|
9
|
+
return cors({ ...options, origin: origins.length ? origins : false });
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../../src/express/security.ts"],"names":[],"mappings":"AAAA,OAAO,IAA0B,MAAM,MAAM,CAAC;AAC9C,OAAO,MAA8B,MAAM,QAAQ,CAAC;AAKpD,yGAAyG;AACzG,MAAM,UAAU,eAAe,CAAC,OAAuB;IACrD,OAAO,MAAM,CAAC,OAAO,CAA8B,CAAC;AACtD,CAAC;AAED,4GAA4G;AAC5G,MAAM,UAAU,cAAc,CAAC,OAAiB,EAAE,UAAuC,EAAE;IACzF,OAAO,IAAI,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAA8B,CAAC;AACrG,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prometheus metrics. Re-exports prom-client so every service runs one version of it;
|
|
3
|
+
* services keep their own metric definitions behind a narrow interface.
|
|
4
|
+
*/
|
|
5
|
+
export { Counter, Gauge, Histogram, Registry, Summary, collectDefaultMetrics } from 'prom-client';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -12,6 +12,8 @@ export declare const EDITORIAL_DRAFT_LIMITS: {
|
|
|
12
12
|
readonly tags: 6;
|
|
13
13
|
readonly seoTitle: 70;
|
|
14
14
|
readonly seoDescription: 170;
|
|
15
|
+
/** Reader-facing update note ("Updated with …"), shown under the article byline. */
|
|
16
|
+
readonly updateNote: 300;
|
|
15
17
|
};
|
|
16
18
|
export declare const DRAFT_SOURCE_ROLES: readonly ["primary", "corroborating"];
|
|
17
19
|
export declare const DRAFT_RISKS: readonly ["low", "medium", "high"];
|
|
@@ -299,6 +301,20 @@ export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
|
|
|
299
301
|
};
|
|
300
302
|
promptVersions: Record<string, number>;
|
|
301
303
|
}>;
|
|
304
|
+
/**
|
|
305
|
+
* Present when the draft updates a story editorial has already published (Phase 21.2): editorial
|
|
306
|
+
* stores it as a pending update on that story instead of creating a new one. Additive and optional.
|
|
307
|
+
*/
|
|
308
|
+
updateOf: z.ZodOptional<z.ZodObject<{
|
|
309
|
+
storyId: z.ZodString;
|
|
310
|
+
note: z.ZodString;
|
|
311
|
+
}, "strip", z.ZodTypeAny, {
|
|
312
|
+
storyId: string;
|
|
313
|
+
note: string;
|
|
314
|
+
}, {
|
|
315
|
+
storyId: string;
|
|
316
|
+
note: string;
|
|
317
|
+
}>>;
|
|
302
318
|
}, "strip", z.ZodTypeAny, {
|
|
303
319
|
review: {
|
|
304
320
|
confidence: number;
|
|
@@ -367,6 +383,10 @@ export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
|
|
|
367
383
|
} | null;
|
|
368
384
|
relatedProfileIds: string[];
|
|
369
385
|
suggestedProfileIds: string[];
|
|
386
|
+
updateOf?: {
|
|
387
|
+
storyId: string;
|
|
388
|
+
note: string;
|
|
389
|
+
} | undefined;
|
|
370
390
|
}, {
|
|
371
391
|
review: {
|
|
372
392
|
confidence: number;
|
|
@@ -435,6 +455,10 @@ export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
|
|
|
435
455
|
} | null;
|
|
436
456
|
relatedProfileIds: string[];
|
|
437
457
|
suggestedProfileIds: string[];
|
|
458
|
+
updateOf?: {
|
|
459
|
+
storyId: string;
|
|
460
|
+
note: string;
|
|
461
|
+
} | undefined;
|
|
438
462
|
}>, {
|
|
439
463
|
review: {
|
|
440
464
|
confidence: number;
|
|
@@ -503,6 +527,10 @@ export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
|
|
|
503
527
|
} | null;
|
|
504
528
|
relatedProfileIds: string[];
|
|
505
529
|
suggestedProfileIds: string[];
|
|
530
|
+
updateOf?: {
|
|
531
|
+
storyId: string;
|
|
532
|
+
note: string;
|
|
533
|
+
} | undefined;
|
|
506
534
|
}, {
|
|
507
535
|
review: {
|
|
508
536
|
confidence: number;
|
|
@@ -571,7 +599,12 @@ export declare const editorialDraftSubmitSchema: z.ZodEffects<z.ZodObject<{
|
|
|
571
599
|
} | null;
|
|
572
600
|
relatedProfileIds: string[];
|
|
573
601
|
suggestedProfileIds: string[];
|
|
602
|
+
updateOf?: {
|
|
603
|
+
storyId: string;
|
|
604
|
+
note: string;
|
|
605
|
+
} | undefined;
|
|
574
606
|
}>;
|
|
575
607
|
export type EditorialDraftSubmit = z.infer<typeof editorialDraftSubmitSchema>;
|
|
576
608
|
export type EditorialDraftSource = EditorialDraftSubmit['sources'][number];
|
|
609
|
+
export type EditorialDraftUpdateOf = NonNullable<EditorialDraftSubmit['updateOf']>;
|
|
577
610
|
//# sourceMappingURL=editorial-draft.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"editorial-draft.d.ts","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,gEAAgE;AAChE,eAAO,MAAM,sBAAsB;;;;;;
|
|
1
|
+
{"version":3,"file":"editorial-draft.d.ts","sourceRoot":"","sources":["../../../src/contracts/editorial-draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,2BAA2B,CAAC;AAE/D,gEAAgE;AAChE,eAAO,MAAM,sBAAsB;;;;;;IAMjC,oFAAoF;;CAE5E,CAAC;AAEX,eAAO,MAAM,kBAAkB,uCAAwC,CAAC;AACxE,eAAO,MAAM,WAAW,oCAAqC,CAAC;AAC9D,eAAO,MAAM,aAAa,sCAAuC,CAAC;AAClE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wKAGrB,CAAC;AACX,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,eAAO,MAAM,UAAU,6EAA8E,CAAC;AAuCtG,eAAO,MAAM,0BAA0B;;;;;;IAOnC,oFAAoF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUpF,yFAAyF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcvF,uDAAuD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGzD;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBH,CAAC;AAEL,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAC3E,MAAM,MAAM,sBAAsB,GAAG,WAAW,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/express/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type CorsOptions } from 'cors';
|
|
2
|
+
import { type HelmetOptions } from 'helmet';
|
|
3
|
+
import type { RequestHandler } from 'express';
|
|
4
|
+
export type { CorsOptions, HelmetOptions };
|
|
5
|
+
/** Standard security headers (helmet). Pass options only to relax a header a service genuinely needs. */
|
|
6
|
+
export declare function securityHeaders(options?: HelmetOptions): RequestHandler;
|
|
7
|
+
/** CORS for browser-facing services. An empty origin list disables CORS (no `Access-Control-*` headers). */
|
|
8
|
+
export declare function corsMiddleware(origins: string[], options?: Omit<CorsOptions, 'origin'>): RequestHandler;
|
|
9
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../../src/express/security.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,KAAK,WAAW,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAe,EAAE,KAAK,aAAa,EAAE,MAAM,QAAQ,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AAE3C,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAEvE;AAED,4GAA4G;AAC5G,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAM,GAAG,cAAc,CAE3G"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prometheus metrics. Re-exports prom-client so every service runs one version of it;
|
|
3
|
+
* services keep their own metric definitions behind a narrow interface.
|
|
4
|
+
*/
|
|
5
|
+
export { Counter, Gauge, Histogram, Registry, Summary, collectDefaultMetrics } from 'prom-client';
|
|
6
|
+
export type { CounterConfiguration, GaugeConfiguration, HistogramConfiguration, SummaryConfiguration } from 'prom-client';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAClG,YAAY,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@heavybit/shared-lib",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "App-agnostic building blocks for Express/TypeScript microservices: gateway identity, access scoping, RabbitMQ events/commands/RPC with retries and DLQs, outbox, cache-aside, rate limiting, sockets, signing, logging and config.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -76,6 +76,11 @@
|
|
|
76
76
|
"import": "./dist/esm/testing/index.js",
|
|
77
77
|
"require": "./dist/cjs/testing/index.js"
|
|
78
78
|
},
|
|
79
|
+
"./metrics": {
|
|
80
|
+
"types": "./dist/types/metrics/index.d.ts",
|
|
81
|
+
"import": "./dist/esm/metrics/index.js",
|
|
82
|
+
"require": "./dist/cjs/metrics/index.js"
|
|
83
|
+
},
|
|
79
84
|
"./package.json": "./package.json"
|
|
80
85
|
},
|
|
81
86
|
"typesVersions": {
|
|
@@ -112,6 +117,9 @@
|
|
|
112
117
|
],
|
|
113
118
|
"testing": [
|
|
114
119
|
"dist/types/testing/index.d.ts"
|
|
120
|
+
],
|
|
121
|
+
"metrics": [
|
|
122
|
+
"dist/types/metrics/index.d.ts"
|
|
115
123
|
]
|
|
116
124
|
}
|
|
117
125
|
},
|
|
@@ -124,11 +132,20 @@
|
|
|
124
132
|
},
|
|
125
133
|
"dependencies": {
|
|
126
134
|
"@types/amqplib": "^0.10.7",
|
|
135
|
+
"@types/cors": "^2.8.17",
|
|
127
136
|
"amqplib": "^0.10.8",
|
|
128
137
|
"argon2": "^0.44.0",
|
|
129
138
|
"bcryptjs": "^3.0.2",
|
|
139
|
+
"cors": "^2.8.5",
|
|
130
140
|
"google-libphonenumber": "^3.2.40",
|
|
141
|
+
"helmet": "^8.1.0",
|
|
142
|
+
"ioredis": "^5.4.2",
|
|
131
143
|
"jsonwebtoken": "^9.0.2",
|
|
144
|
+
"knex": "^3.1.0",
|
|
145
|
+
"mysql2": "^3.11.4",
|
|
146
|
+
"prom-client": "^15.1.3",
|
|
147
|
+
"rate-limiter-flexible": "^5.0.5",
|
|
148
|
+
"socket.io": "^4.8.1",
|
|
132
149
|
"ulid": "^3.0.1",
|
|
133
150
|
"undici": "^7.30.0",
|
|
134
151
|
"winston": "^3.17.0",
|
|
@@ -136,12 +153,7 @@
|
|
|
136
153
|
},
|
|
137
154
|
"peerDependencies": {
|
|
138
155
|
"@socket.io/redis-adapter": ">=8.0.0",
|
|
139
|
-
"express": ">=4.18.0"
|
|
140
|
-
"ioredis": ">=5.0.0",
|
|
141
|
-
"knex": ">=3.0.0",
|
|
142
|
-
"mysql2": ">=3.0.0",
|
|
143
|
-
"rate-limiter-flexible": ">=5.0.0",
|
|
144
|
-
"socket.io": ">=4.7.0"
|
|
156
|
+
"express": ">=4.18.0"
|
|
145
157
|
},
|
|
146
158
|
"peerDependenciesMeta": {
|
|
147
159
|
"@socket.io/redis-adapter": {
|
|
@@ -149,21 +161,6 @@
|
|
|
149
161
|
},
|
|
150
162
|
"express": {
|
|
151
163
|
"optional": true
|
|
152
|
-
},
|
|
153
|
-
"ioredis": {
|
|
154
|
-
"optional": true
|
|
155
|
-
},
|
|
156
|
-
"knex": {
|
|
157
|
-
"optional": true
|
|
158
|
-
},
|
|
159
|
-
"mysql2": {
|
|
160
|
-
"optional": true
|
|
161
|
-
},
|
|
162
|
-
"rate-limiter-flexible": {
|
|
163
|
-
"optional": true
|
|
164
|
-
},
|
|
165
|
-
"socket.io": {
|
|
166
|
-
"optional": true
|
|
167
164
|
}
|
|
168
165
|
},
|
|
169
166
|
"devDependencies": {
|
|
@@ -175,12 +172,7 @@
|
|
|
175
172
|
"@types/node": "^22.10.0",
|
|
176
173
|
"@types/supertest": "^6.0.2",
|
|
177
174
|
"express": "^5.1.0",
|
|
178
|
-
"ioredis": "^5.4.2",
|
|
179
175
|
"jest": "^29.7.0",
|
|
180
|
-
"knex": "^3.1.0",
|
|
181
|
-
"mysql2": "^3.11.4",
|
|
182
|
-
"rate-limiter-flexible": "^5.0.5",
|
|
183
|
-
"socket.io": "^4.8.1",
|
|
184
176
|
"supertest": "^7.0.0",
|
|
185
177
|
"ts-jest": "^29.4.6",
|
|
186
178
|
"typescript": "^5.7.2"
|