@nightintelligence/cloudflare-workers-utils 0.35.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/README.md +5 -0
- package/dist/browser.d.mts +47 -0
- package/dist/browser.mjs +4 -0
- package/dist/browser.mjs.map +1 -0
- package/dist/chunk-3D4BXUZX.mjs +54 -0
- package/dist/chunk-3D4BXUZX.mjs.map +1 -0
- package/dist/chunk-4RE36JUD.mjs +3160 -0
- package/dist/chunk-4RE36JUD.mjs.map +1 -0
- package/dist/chunk-6LYDFTTF.mjs +40 -0
- package/dist/chunk-6LYDFTTF.mjs.map +1 -0
- package/dist/chunk-CPLEE7LH.mjs +64 -0
- package/dist/chunk-CPLEE7LH.mjs.map +1 -0
- package/dist/chunk-G5FCNCLK.mjs +47 -0
- package/dist/chunk-G5FCNCLK.mjs.map +1 -0
- package/dist/chunk-IGC3TZGH.mjs +157 -0
- package/dist/chunk-IGC3TZGH.mjs.map +1 -0
- package/dist/chunk-NXPJWJ2B.mjs +180 -0
- package/dist/chunk-NXPJWJ2B.mjs.map +1 -0
- package/dist/chunk-OPAKTV2K.mjs +75 -0
- package/dist/chunk-OPAKTV2K.mjs.map +1 -0
- package/dist/chunk-VKFVZ67V.mjs +35 -0
- package/dist/chunk-VKFVZ67V.mjs.map +1 -0
- package/dist/chunk-W7DIL5J2.mjs +267 -0
- package/dist/chunk-W7DIL5J2.mjs.map +1 -0
- package/dist/chunk-ZLUHKBEC.mjs +44 -0
- package/dist/chunk-ZLUHKBEC.mjs.map +1 -0
- package/dist/chunk-ZQ2EZEOC.mjs +477 -0
- package/dist/chunk-ZQ2EZEOC.mjs.map +1 -0
- package/dist/compatibility-date.d.mts +80 -0
- package/dist/compatibility-date.mjs +4 -0
- package/dist/compatibility-date.mjs.map +1 -0
- package/dist/compliance-j3-tqeao.d.mts +3616 -0
- package/dist/compliance.d.mts +4 -0
- package/dist/compliance.mjs +9 -0
- package/dist/compliance.mjs.map +1 -0
- package/dist/docker-path.d.mts +8 -0
- package/dist/docker-path.mjs +5 -0
- package/dist/docker-path.mjs.map +1 -0
- package/dist/errors.d.mts +55 -0
- package/dist/errors.mjs +4 -0
- package/dist/errors.mjs.map +1 -0
- package/dist/fs-helpers.d.mts +40 -0
- package/dist/fs-helpers.mjs +4 -0
- package/dist/fs-helpers.mjs.map +1 -0
- package/dist/global-wrangler-config-path.d.mts +35 -0
- package/dist/global-wrangler-config-path.mjs +5 -0
- package/dist/global-wrangler-config-path.mjs.map +1 -0
- package/dist/index.d.mts +1263 -0
- package/dist/index.mjs +26282 -0
- package/dist/index.mjs.map +1 -0
- package/dist/local-env.d.mts +54 -0
- package/dist/local-env.mjs +178 -0
- package/dist/local-env.mjs.map +1 -0
- package/dist/metafile-esm.json +1 -0
- package/dist/open-OYMIZX6T.mjs +609 -0
- package/dist/open-OYMIZX6T.mjs.map +1 -0
- package/dist/prometheus-metrics.d.mts +50 -0
- package/dist/prometheus-metrics.mjs +4 -0
- package/dist/prometheus-metrics.mjs.map +1 -0
- package/dist/test-helpers/index.d.mts +46 -0
- package/dist/test-helpers/index.mjs +310 -0
- package/dist/test-helpers/index.mjs.map +1 -0
- package/dist/zod-format.d.mts +6 -0
- package/dist/zod-format.mjs +4 -0
- package/dist/zod-format.mjs.map +1 -0
- package/package.json +126 -0
package/README.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { be as TailConsumer, bi as WorkerMetadata, R as RawConfig } from './compliance-j3-tqeao.mjs';
|
|
2
|
+
import { AssetConfig } from '@cloudflare/workers-shared';
|
|
3
|
+
import { Cloudflare } from 'cloudflare';
|
|
4
|
+
import 'node:url';
|
|
5
|
+
import 'undici';
|
|
6
|
+
|
|
7
|
+
type RoutesRes = {
|
|
8
|
+
id: string;
|
|
9
|
+
pattern: string;
|
|
10
|
+
zone_name: string;
|
|
11
|
+
script: string;
|
|
12
|
+
}[];
|
|
13
|
+
interface APIWorkerConfig {
|
|
14
|
+
name: string;
|
|
15
|
+
entrypoint: string;
|
|
16
|
+
tags: string[] | null;
|
|
17
|
+
compatibility_date: string;
|
|
18
|
+
compatibility_flags: string[];
|
|
19
|
+
logpush: boolean | undefined;
|
|
20
|
+
routes: RoutesRes;
|
|
21
|
+
tail_consumers: TailConsumer[] | undefined | null;
|
|
22
|
+
migration_tag?: string;
|
|
23
|
+
domains: Cloudflare.Workers.Domain[];
|
|
24
|
+
schedules: Cloudflare.Workers.Scripts.Schedules.ScheduleGetResponse.Schedule[];
|
|
25
|
+
assets?: AssetConfig;
|
|
26
|
+
bindings: WorkerMetadata["bindings"];
|
|
27
|
+
observability: Cloudflare.Workers.Beta.Worker.Observability | undefined;
|
|
28
|
+
limits: {
|
|
29
|
+
cpu_ms?: number;
|
|
30
|
+
subrequests?: number;
|
|
31
|
+
} | undefined;
|
|
32
|
+
placement: Cloudflare.Workers.Beta.Workers.Version.Placement | undefined;
|
|
33
|
+
subdomain: {
|
|
34
|
+
enabled: boolean;
|
|
35
|
+
previews_enabled: boolean;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Given information about a Worker,
|
|
40
|
+
* construct a Wrangler config file for the application.
|
|
41
|
+
*
|
|
42
|
+
* @param config - The Worker configuration sourced from the Cloudflare API
|
|
43
|
+
* @returns A Wrangler-compatible raw config object
|
|
44
|
+
*/
|
|
45
|
+
declare function constructWranglerConfig(config: APIWorkerConfig): RawConfig;
|
|
46
|
+
|
|
47
|
+
export { constructWranglerConfig };
|
package/dist/browser.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"browser.mjs"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { __name } from './chunk-6LYDFTTF.mjs';
|
|
2
|
+
|
|
3
|
+
// src/prometheus-metrics.ts
|
|
4
|
+
var MetricsRegistry = class {
|
|
5
|
+
static {
|
|
6
|
+
__name(this, "MetricsRegistry");
|
|
7
|
+
}
|
|
8
|
+
counters = [];
|
|
9
|
+
/**
|
|
10
|
+
* Create and register a new counter metric.
|
|
11
|
+
*
|
|
12
|
+
* @param name - The metric name (e.g. "service_request_total")
|
|
13
|
+
* @param help - A human-readable description of the metric
|
|
14
|
+
* @returns A Counter that can be incremented
|
|
15
|
+
*/
|
|
16
|
+
createCounter(name, help) {
|
|
17
|
+
const entry = { name, help, value: 0 };
|
|
18
|
+
this.counters.push(entry);
|
|
19
|
+
return {
|
|
20
|
+
inc: /* @__PURE__ */ __name(() => {
|
|
21
|
+
entry.value++;
|
|
22
|
+
}, "inc"),
|
|
23
|
+
add: /* @__PURE__ */ __name((amount) => {
|
|
24
|
+
if (amount < 0) {
|
|
25
|
+
throw new Error("Counter value cannot decrease");
|
|
26
|
+
}
|
|
27
|
+
entry.value += amount;
|
|
28
|
+
}, "add")
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Serialize all registered metrics in Prometheus text exposition format.
|
|
33
|
+
*
|
|
34
|
+
* @see https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format
|
|
35
|
+
*/
|
|
36
|
+
metrics() {
|
|
37
|
+
return this.counters.map((c) => {
|
|
38
|
+
let result = "";
|
|
39
|
+
if (c.help.length > 0) {
|
|
40
|
+
result += `# HELP ${c.name} ${c.help}
|
|
41
|
+
`;
|
|
42
|
+
}
|
|
43
|
+
result += `# TYPE ${c.name} counter
|
|
44
|
+
`;
|
|
45
|
+
result += `${c.name} ${c.value}
|
|
46
|
+
`;
|
|
47
|
+
return result;
|
|
48
|
+
}).join("");
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { MetricsRegistry };
|
|
53
|
+
//# sourceMappingURL=chunk-3D4BXUZX.mjs.map
|
|
54
|
+
//# sourceMappingURL=chunk-3D4BXUZX.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/prometheus-metrics.ts"],"names":[],"mappings":";;;AAuCO,IAAM,kBAAN,MAAsB;AAAA,EAvC7B;AAuC6B,IAAA,MAAA,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AAAA,EACpB,WAA2B,EAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASpC,aAAA,CAAc,MAAc,IAAA,EAAuB;AAClD,IAAA,MAAM,KAAA,GAAsB,EAAE,IAAA,EAAM,IAAA,EAAM,OAAO,CAAA,EAAE;AACnD,IAAA,IAAA,CAAK,QAAA,CAAS,KAAK,KAAK,CAAA;AACxB,IAAA,OAAO;AAAA,MACN,qBAAK,MAAA,CAAA,MAAM;AACV,QAAA,KAAA,CAAM,KAAA,EAAA;AAAA,MACP,CAAA,EAFK,KAAA,CAAA;AAAA,MAGL,GAAA,0BAAM,MAAA,KAAmB;AACxB,QAAA,IAAI,SAAS,CAAA,EAAG;AACf,UAAA,MAAM,IAAI,MAAM,+BAA+B,CAAA;AAAA,QAChD;AACA,QAAA,KAAA,CAAM,KAAA,IAAS,MAAA;AAAA,MAChB,CAAA,EALK,KAAA;AAAA,KAMN;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAA,GAAkB;AACjB,IAAA,OAAO,IAAA,CAAK,QAAA,CACV,GAAA,CAAI,CAAC,CAAA,KAAM;AACX,MAAA,IAAI,MAAA,GAAS,EAAA;AACb,MAAA,IAAI,CAAA,CAAE,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG;AACtB,QAAA,MAAA,IAAU,CAAA,OAAA,EAAU,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,EAAE,IAAI;AAAA,CAAA;AAAA,MACrC;AACA,MAAA,MAAA,IAAU,CAAA,OAAA,EAAU,EAAE,IAAI,CAAA;AAAA,CAAA;AAC1B,MAAA,MAAA,IAAU,CAAA,EAAG,CAAA,CAAE,IAAI,CAAA,CAAA,EAAI,EAAE,KAAK;AAAA,CAAA;AAC9B,MAAA,OAAO,MAAA;AAAA,IACR,CAAC,CAAA,CACA,IAAA,CAAK,EAAE,CAAA;AAAA,EACV;AACD","file":"chunk-3D4BXUZX.mjs","sourcesContent":["/**\n * Lightweight Prometheus metrics registry for push-based counter metrics.\n *\n * Designed for ephemeral per-request usage in Cloudflare Workers that push\n * metrics to a Prometheus push gateway. Replaces the deprecated `promjs` library.\n *\n * @example\n * ```ts\n * const metrics = new MetricsRegistry();\n * const reqCounter = metrics.createCounter(\n * \"service_request_total\",\n * \"Total requests\"\n * );\n * reqCounter.inc();\n *\n * // Push to Prometheus gateway\n * ctx.waitUntil(\n * fetch(prometheusUrl, {\n * method: \"POST\",\n * headers: { Authorization: `Bearer ${token}` },\n * body: metrics.metrics(),\n * })\n * );\n * ```\n */\n\nexport interface Counter {\n\t/** Increment the counter by 1. */\n\tinc(): void;\n\t/** Increment the counter by the given non-negative amount. */\n\tadd(amount: number): void;\n}\n\ninterface CounterEntry {\n\tname: string;\n\thelp: string;\n\tvalue: number;\n}\n\nexport class MetricsRegistry {\n\tprivate counters: CounterEntry[] = [];\n\n\t/**\n\t * Create and register a new counter metric.\n\t *\n\t * @param name - The metric name (e.g. \"service_request_total\")\n\t * @param help - A human-readable description of the metric\n\t * @returns A Counter that can be incremented\n\t */\n\tcreateCounter(name: string, help: string): Counter {\n\t\tconst entry: CounterEntry = { name, help, value: 0 };\n\t\tthis.counters.push(entry);\n\t\treturn {\n\t\t\tinc: () => {\n\t\t\t\tentry.value++;\n\t\t\t},\n\t\t\tadd: (amount: number) => {\n\t\t\t\tif (amount < 0) {\n\t\t\t\t\tthrow new Error(\"Counter value cannot decrease\");\n\t\t\t\t}\n\t\t\t\tentry.value += amount;\n\t\t\t},\n\t\t};\n\t}\n\n\t/**\n\t * Serialize all registered metrics in Prometheus text exposition format.\n\t *\n\t * @see https://prometheus.io/docs/instrumenting/exposition_formats/#text-based-format\n\t */\n\tmetrics(): string {\n\t\treturn this.counters\n\t\t\t.map((c) => {\n\t\t\t\tlet result = \"\";\n\t\t\t\tif (c.help.length > 0) {\n\t\t\t\t\tresult += `# HELP ${c.name} ${c.help}\\n`;\n\t\t\t\t}\n\t\t\t\tresult += `# TYPE ${c.name} counter\\n`;\n\t\t\t\tresult += `${c.name} ${c.value}\\n`;\n\t\t\t\treturn result;\n\t\t\t})\n\t\t\t.join(\"\");\n\t}\n}\n"]}
|