@nightintelligence/cloudflare-workers-utils 0.35.0-patch2 → 0.35.0-patch4
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/browser.mjs +2 -2
- package/dist/{chunk-NXPJWJ2B.mjs → chunk-47QFQIPP.mjs} +7 -7
- package/dist/{chunk-NXPJWJ2B.mjs.map → chunk-47QFQIPP.mjs.map} +1 -1
- package/dist/{chunk-OPAKTV2K.mjs → chunk-555CCIJE.mjs} +4 -4
- package/dist/{chunk-OPAKTV2K.mjs.map → chunk-555CCIJE.mjs.map} +1 -1
- package/dist/chunk-CGILA3WO.mjs +12 -0
- package/dist/{chunk-6LYDFTTF.mjs.map → chunk-CGILA3WO.mjs.map} +1 -1
- package/dist/{chunk-3D4BXUZX.mjs → chunk-FEHWZI5W.mjs} +3 -3
- package/dist/{chunk-3D4BXUZX.mjs.map → chunk-FEHWZI5W.mjs.map} +1 -1
- package/dist/{chunk-CPLEE7LH.mjs → chunk-KAEJMITB.mjs} +3 -3
- package/dist/{chunk-CPLEE7LH.mjs.map → chunk-KAEJMITB.mjs.map} +1 -1
- package/dist/{chunk-VKFVZ67V.mjs → chunk-T6I7NOR4.mjs} +3 -3
- package/dist/{chunk-VKFVZ67V.mjs.map → chunk-T6I7NOR4.mjs.map} +1 -1
- package/dist/{chunk-W7DIL5J2.mjs → chunk-VTOON473.mjs} +4 -34
- package/dist/chunk-VTOON473.mjs.map +1 -0
- package/dist/chunk-W4SU7D4X.mjs +575 -0
- package/dist/chunk-W4SU7D4X.mjs.map +1 -0
- package/dist/{chunk-IGC3TZGH.mjs → chunk-YTEYGQOX.mjs} +4 -4
- package/dist/{chunk-IGC3TZGH.mjs.map → chunk-YTEYGQOX.mjs.map} +1 -1
- package/dist/{chunk-ZQ2EZEOC.mjs → chunk-Z7Q743IF.mjs} +3 -3
- package/dist/{chunk-ZQ2EZEOC.mjs.map → chunk-Z7Q743IF.mjs.map} +1 -1
- package/dist/{chunk-ZLUHKBEC.mjs → chunk-ZZBYXY7A.mjs} +3 -3
- package/dist/{chunk-ZLUHKBEC.mjs.map → chunk-ZZBYXY7A.mjs.map} +1 -1
- package/dist/compatibility-date.mjs +2 -2
- package/dist/compliance.mjs +6 -7
- package/dist/docker-path.mjs +3 -3
- package/dist/errors.mjs +2 -2
- package/dist/fs-helpers.mjs +2 -2
- package/dist/global-wrangler-config-path.mjs +3 -3
- package/dist/index.mjs +402 -17128
- package/dist/index.mjs.map +1 -1
- package/dist/local-env.mjs +3 -78
- package/dist/local-env.mjs.map +1 -1
- package/dist/metafile-esm.json +1 -1
- package/dist/prometheus-metrics.mjs +2 -2
- package/dist/test-helpers/index.mjs +4 -5
- package/dist/test-helpers/index.mjs.map +1 -1
- package/dist/zod-format.mjs +2 -2
- package/package.json +1 -1
- package/dist/chunk-4RE36JUD.mjs +0 -3160
- package/dist/chunk-4RE36JUD.mjs.map +0 -1
- package/dist/chunk-6LYDFTTF.mjs +0 -40
- package/dist/chunk-G5FCNCLK.mjs +0 -47
- package/dist/chunk-G5FCNCLK.mjs.map +0 -1
- package/dist/chunk-W7DIL5J2.mjs.map +0 -1
- package/dist/open-OYMIZX6T.mjs +0 -609
- package/dist/open-OYMIZX6T.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MetricsRegistry } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { MetricsRegistry } from './chunk-FEHWZI5W.mjs';
|
|
2
|
+
import './chunk-CGILA3WO.mjs';
|
|
3
3
|
//# sourceMappingURL=prometheus-metrics.mjs.map
|
|
4
4
|
//# sourceMappingURL=prometheus-metrics.mjs.map
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { formatConfigSnippet, PATH_TO_DEPLOY_CONFIG, parseTOML, parseJSONC } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
4
|
-
import {
|
|
5
|
-
import { __name } from '../chunk-6LYDFTTF.mjs';
|
|
1
|
+
import { formatConfigSnippet, PATH_TO_DEPLOY_CONFIG, parseTOML, parseJSONC } from '../chunk-W4SU7D4X.mjs';
|
|
2
|
+
import '../chunk-KAEJMITB.mjs';
|
|
3
|
+
import { removeDir } from '../chunk-T6I7NOR4.mjs';
|
|
4
|
+
import { __name } from '../chunk-CGILA3WO.mjs';
|
|
6
5
|
import * as util from 'node:util';
|
|
7
6
|
import { beforeEach, vi, afterEach } from 'vitest';
|
|
8
7
|
import * as fs2 from 'node:fs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/test-helpers/normalize.ts","../../src/test-helpers/mock.ts","../../src/test-helpers/email-header-validation.ts","../../src/test-helpers/run-in-tmp.ts","../../src/test-helpers/seed.ts","../../src/test-helpers/wrangler-config.ts"],"names":["join","resolve","beforeEach","fs","vi","afterEach","path"],"mappings":"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","file":"index.mjs","sourcesContent":["export const mockCreateDate = new Date(2025, 4, 1);\nexport const mockModifiedDate = new Date(2025, 4, 2);\nexport const mockStartDate = new Date(2021, 1, 1);\nexport const mockQueuedDate = new Date(2025, 1, 2);\nexport const mockEndDate = new Date(2025, 1, 3);\n\n/**\n * Normalize the input string, to make it reliable to use in tests.\n */\nexport function normalizeString(input: string): string {\n\treturn normalizeTables(\n\t\tnormalizeDates(\n\t\t\tnormalizeErrorMarkers(\n\t\t\t\treplaceByte(\n\t\t\t\t\tstripTrailingWhitespace(\n\t\t\t\t\t\tstripStartupProfileHash(\n\t\t\t\t\t\t\tnormalizeSlashes(\n\t\t\t\t\t\t\t\tnormalizeCwd(\n\t\t\t\t\t\t\t\t\tnormalizeTempDirs(\n\t\t\t\t\t\t\t\t\t\tnormalizeOAuthUrlParams(\n\t\t\t\t\t\t\t\t\t\t\tstripTimings(replaceThinSpaces(input))\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n}\n\n/**\n * The OAuth authorize URL contains a random `state` and PKCE `code_challenge`\n * on every run. Replace those two values (but not `code_challenge_method`) with\n * stable placeholders so snapshots of the login URL stay deterministic.\n */\nfunction normalizeOAuthUrlParams(str: string): string {\n\treturn str\n\t\t.replace(/([?&]state=)[^&\\s]+/g, \"$1<OAUTH_STATE>\")\n\t\t.replace(/([?&]code_challenge=)[^&\\s]+/g, \"$1<OAUTH_CODE_CHALLENGE>\");\n}\n\nfunction stripStartupProfileHash(str: string): string {\n\treturn str.replace(/startup-profile-[^/]+/g, \"startup-profile-<HASH>\");\n}\n\nfunction normalizeTables(str: string): string {\n\treturn str\n\t\t.replaceAll(/┌─+/g, \"┌─\")\n\t\t.replaceAll(/┬─+/g, \"┬─\")\n\t\t.replaceAll(/ +│/g, \" │\")\n\t\t.replaceAll(/├─+/g, \"├─\")\n\t\t.replaceAll(/┼─+/g, \"┼─\")\n\t\t.replaceAll(/└─+/g, \"└─\")\n\t\t.replaceAll(/┴─+/g, \"┴─\");\n}\n\nfunction normalizeDates(str: string): string {\n\treturn str\n\t\t.replaceAll(/\\d+ (years?|days?|months?) ago/g, \"[mock-time-ago]\")\n\t\t.replaceAll(mockCreateDate.toLocaleString(), \"[mock-create-date]\")\n\t\t.replaceAll(mockModifiedDate.toLocaleString(), \"[mock-modified-date]\")\n\t\t.replaceAll(mockStartDate.toLocaleString(), \"[mock-start-date]\")\n\t\t.replaceAll(mockQueuedDate.toLocaleString(), \"[mock-queued-date]\")\n\t\t.replaceAll(mockEndDate.toLocaleString(), \"[mock-end-date]\");\n}\n\n/**\n * Normalize error `X` markers.\n *\n * Windows gets a different character.\n */\nfunction normalizeErrorMarkers(str: string): string {\n\treturn str.replaceAll(\"✘\", \"X\");\n}\n\n/**\n * Ensure slashes in the `str` are OS file-system agnostic.\n *\n * Use this in snapshot tests to be resilient to file-system differences.\n */\nfunction normalizeSlashes(str: string): string {\n\treturn str.replace(/\\\\/g, \"/\");\n}\n\n/**\n * Replace any use of the current working directory with `<cwd>` to avoid cross OS issues.\n */\nfunction normalizeCwd(str: string): string {\n\treturn str.replaceAll(process.cwd(), \"<cwd>\");\n}\n\n/**\n * Strip \"timing data\" out of the `stdout` string, since this is not always deterministic.\n *\n * Use this in snapshot tests to be resilient to slight changes in timing of processing.\n */\nfunction stripTimings(stdout: string): string {\n\treturn stdout.replace(/\\(\\d+\\.\\d+ sec\\)/g, \"(TIMINGS)\");\n}\n\nfunction stripTrailingWhitespace(str: string): string {\n\treturn str.replace(/[^\\S\\n]+\\n/g, \"\\n\");\n}\n\n/**\n * Removing leading kilobit (tenth of a byte) from test output due to\n * variation causing every few tests the value to change by ± .01\n */\nfunction replaceByte(stdout: string): string {\n\treturn stdout.replaceAll(/\\d+\\.\\d+ KiB/g, \"xx KiB\");\n}\n\n/**\n * Temp directories are created with random names, so we replace all comments temp dirs in them\n */\nfunction normalizeTempDirs(stdout: string): string {\n\treturn stdout.replaceAll(/\\/\\/.+\\/tmp.+/g, \"//tmpdir\");\n}\n\n/**\n * Replace thin space characters (U+200A) with regular spaces to normalize output\n */\nfunction replaceThinSpaces(str: string): string {\n\treturn str.replaceAll(/\\u200a/g, \" \");\n}\n","import * as util from \"node:util\";\nimport { afterEach, beforeEach, vi } from \"vitest\";\nimport { normalizeString } from \"./normalize\";\nimport type { MockInstance } from \"vitest\";\n\n/**\n * We use this module to mock console methods, and optionally\n * assert on the values they're called with in our tests.\n */\n\nlet debugSpy: MockInstance,\n\tlogSpy: MockInstance,\n\tinfoSpy: MockInstance,\n\terrorSpy: MockInstance,\n\twarnSpy: MockInstance;\n\n/**\n * An object containing the normalized output of each console method.\n *\n * We use `defineProperties` to add non enumerable methods to the object,\n * so they don't show up in test assertions that iterate over the object's keys.\n * i.e. `expect(std).toMatchInlineSnapshot('...')`;\n */\nconst std = Object.defineProperties(\n\t{ debug: \"\", out: \"\", info: \"\", err: \"\", warn: \"\", getAndClearOut: () => \"\" },\n\t{\n\t\tdebug: {\n\t\t\tget: () => normalizeOutput(debugSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\tout: {\n\t\t\tget: () => normalizeOutput(logSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\tinfo: {\n\t\t\tget: () => normalizeOutput(infoSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\terr: {\n\t\t\tget: () => normalizeOutput(errorSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\twarn: {\n\t\t\tget: () => normalizeOutput(warnSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\t/**\n\t\t * Return the content of the mocked stdout and clear the mock's history.\n\t\t *\n\t\t * Helpful for tests that need to assert on multiple sequential console outputs.\n\t\t */\n\t\tgetAndClearOut: {\n\t\t\tvalue: () => {\n\t\t\t\tconst output = normalizeOutput(logSpy);\n\t\t\t\tlogSpy.mockClear();\n\t\t\t\treturn output;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t}\n);\n\nfunction normalizeOutput(spy: MockInstance, join = \"\\n\"): string {\n\treturn normalizeString(captureCalls(spy, join));\n}\n\nfunction captureCalls(spy: MockInstance, join = \"\\n\"): string {\n\treturn spy.mock.calls\n\t\t.map((args: unknown[]) => util.format(\"%s\", ...args))\n\t\t.join(join);\n}\n\nexport function mockConsoleMethods() {\n\tbeforeEach(() => {\n\t\tdebugSpy = vi.spyOn(console, \"debug\").mockImplementation(() => {});\n\t\tlogSpy = vi.spyOn(console, \"log\").mockImplementation(() => {});\n\t\tinfoSpy = vi.spyOn(console, \"info\").mockImplementation(() => {});\n\t\terrorSpy = vi.spyOn(console, \"error\").mockImplementation(() => {});\n\t\twarnSpy = vi.spyOn(console, \"warn\").mockImplementation(() => {});\n\t});\n\tafterEach(() => {\n\t\tdebugSpy.mockRestore();\n\t\tlogSpy.mockRestore();\n\t\tinfoSpy.mockRestore();\n\t\terrorSpy.mockRestore();\n\t\twarnSpy.mockRestore();\n\t});\n\treturn std;\n}\n\nexport function createDeferred<T>() {\n\tlet resolve: ((value: T) => void) | undefined;\n\tlet reject: ((reason?: unknown) => void) | undefined;\n\tconst promise = new Promise<T>((_resolve, _reject) => {\n\t\tresolve = _resolve;\n\t\treject = _reject;\n\t});\n\n\tif (!resolve || !reject) {\n\t\tthrow new Error(\"Failed to create deferred promise\");\n\t}\n\n\treturn {\n\t\tpromise,\n\t\tresolve,\n\t\treject,\n\t};\n}\n","export const EMAIL_HEADER_NAME_CASES = [\n\t[\"accepts RFC token characters\", \"X-Custom_Header.1\", true],\n\t[\"rejects spaces\", \"X Header\", false],\n\t[\"rejects colons\", \"X:Header\", false],\n\t[\"rejects an empty name\", \"\", false],\n] as const;\n\nexport const EMAIL_HEADER_VALUE_CASES = [\n\t[\"accepts plain text\", \"custom value\", true],\n\t[\"accepts LF-delimited lines\", \"first\\nsecond\", true],\n\t[\"accepts CRLF-delimited lines\", \"first\\r\\nsecond\", true],\n\t[\n\t\t\"accepts an injection-shaped line for safe folding\",\n\t\t\"safe\\nBcc: victim@example.com\",\n\t\ttrue,\n\t],\n\t[\"rejects a bare carriage return\", \"first\\rsecond\", false],\n\t[\"rejects a tab\", \"first\\tsecond\", false],\n\t[\"rejects DEL\", \"first\\u007fsecond\", false],\n] as const;\n\nexport const MANAGED_EMAIL_HEADER_CASES = [\n\t[\"Bcc\", true],\n\t[\"Cc\", true],\n\t[\"Content-Transfer-Encoding\", true],\n\t[\"CONTENT-TYPE\", true],\n\t[\"Date\", true],\n\t[\"From\", true],\n\t[\"MIME-Version\", true],\n\t[\"Reply-To\", true],\n\t[\"Subject\", true],\n\t[\"mEsSaGe-Id\", true],\n\t[\"To\", true],\n\t[\"X-Custom-Header\", false],\n] as const;\n","import * as fs from \"node:fs\";\nimport os from \"node:os\";\nimport * as path from \"node:path\";\nimport { afterEach, beforeEach, vi } from \"vitest\";\nimport { removeDir } from \"../fs-helpers\";\n\nconst originalCwd = process.cwd();\n\nexport function runInTempDir({ homedir } = { homedir: \"./home\" }) {\n\tlet tmpDir: string;\n\n\tbeforeEach(() => {\n\t\t// Use realpath because the temporary path can point to a symlink rather than the actual path.\n\t\ttmpDir = fs.realpathSync(\n\t\t\tfs.mkdtempSync(path.join(os.tmpdir(), \"wrangler-tests\"))\n\t\t);\n\n\t\tprocess.chdir(tmpDir);\n\t\tvi.stubEnv(\"PWD\", tmpDir);\n\n\t\t// Override where the home directory is so that we can write our own user config,\n\t\t// without destroying the real thing.\n\t\t// The path that is returned from `homedir()` should be absolute.\n\t\tconst absHomedir = path.resolve(tmpDir, homedir);\n\t\tfs.mkdirSync(absHomedir, { recursive: true });\n\t\tvi.stubEnv(\"HOME\", absHomedir);\n\t\tvi.stubEnv(\"XDG_CONFIG_HOME\", path.resolve(absHomedir, \".config\"));\n\t});\n\n\tafterEach(() => {\n\t\tprocess.chdir(originalCwd);\n\t\tremoveDir(tmpDir, { fireAndForget: true });\n\t});\n}\n","// Seeds the `root` directory on the file system with some data. Use in\n\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\n\n// combination with `dedent` for petty formatting of seeded contents.\nexport async function seed(files: Record<string, string | Uint8Array>) {\n\tfor (const [name, contents] of Object.entries(files)) {\n\t\tconst filePath = path.resolve(name);\n\t\tawait mkdir(path.dirname(filePath), { recursive: true });\n\t\tawait writeFile(filePath, contents);\n\t}\n}\n","import * as fs from \"node:fs\";\nimport { dirname, relative } from \"node:path\";\nimport { formatConfigSnippet } from \"../config\";\nimport { PATH_TO_DEPLOY_CONFIG } from \"../constants\";\nimport { parseJSONC, parseTOML } from \"../parse\";\nimport type { RawConfig } from \"../config\";\nimport type { RedirectedRawConfig } from \"../config/config\";\n\n/** Write a mock wrangler config file to disk. */\nexport function writeWranglerConfig(\n\tconfig: RawConfig = {},\n\tpath = \"./wrangler.toml\"\n) {\n\tconst json = /\\.jsonc?$/.test(path);\n\tfs.mkdirSync(dirname(path), { recursive: true });\n\tfs.writeFileSync(\n\t\tpath,\n\t\tformatConfigSnippet(\n\t\t\t{\n\t\t\t\tcompatibility_date: \"2022-01-12\",\n\t\t\t\tname: \"test-name\",\n\t\t\t\t...config,\n\t\t\t},\n\t\t\tpath,\n\t\t\t!!json\n\t\t),\n\t\t\"utf-8\"\n\t);\n}\n\nexport function writeRedirectedWranglerConfig(\n\tconfig: RedirectedRawConfig,\n\tpath = \"./dist/wrangler.json\"\n) {\n\tconst json = /\\.jsonc?$/.test(path);\n\tfs.mkdirSync(dirname(path), { recursive: true });\n\tfs.writeFileSync(\n\t\tpath,\n\t\tformatConfigSnippet(\n\t\t\t{\n\t\t\t\tcompatibility_date: \"2022-01-12\",\n\t\t\t\tname: \"test-name\",\n\t\t\t\t...config,\n\t\t\t},\n\t\t\tpath,\n\t\t\t!!json\n\t\t),\n\t\t\"utf-8\"\n\t);\n\twriteDeployRedirectConfig(path);\n}\n\nexport function writeDeployRedirectConfig(configPath: string) {\n\tconst config: RedirectedRawConfig = {\n\t\tconfigPath: relative(dirname(PATH_TO_DEPLOY_CONFIG), configPath),\n\t};\n\tfs.mkdirSync(dirname(PATH_TO_DEPLOY_CONFIG), { recursive: true });\n\tfs.writeFileSync(\n\t\tPATH_TO_DEPLOY_CONFIG,\n\t\tformatConfigSnippet(config, \".json\", true),\n\t\t\"utf-8\"\n\t);\n}\n\nexport function readWranglerConfig(path = \"./wrangler.toml\"): RawConfig {\n\tif (path.endsWith(\".toml\")) {\n\t\treturn parseTOML(fs.readFileSync(path, \"utf8\"), path) as RawConfig;\n\t}\n\n\tif (path.endsWith(\".json\") || path.endsWith(\".jsonc\")) {\n\t\treturn parseJSONC(fs.readFileSync(path, \"utf8\"), path) as RawConfig;\n\t}\n\n\treturn {};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/test-helpers/normalize.ts","../../src/test-helpers/mock.ts","../../src/test-helpers/email-header-validation.ts","../../src/test-helpers/run-in-tmp.ts","../../src/test-helpers/seed.ts","../../src/test-helpers/wrangler-config.ts"],"names":["join","resolve","beforeEach","fs","vi","afterEach","path"],"mappings":"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","file":"index.mjs","sourcesContent":["export const mockCreateDate = new Date(2025, 4, 1);\nexport const mockModifiedDate = new Date(2025, 4, 2);\nexport const mockStartDate = new Date(2021, 1, 1);\nexport const mockQueuedDate = new Date(2025, 1, 2);\nexport const mockEndDate = new Date(2025, 1, 3);\n\n/**\n * Normalize the input string, to make it reliable to use in tests.\n */\nexport function normalizeString(input: string): string {\n\treturn normalizeTables(\n\t\tnormalizeDates(\n\t\t\tnormalizeErrorMarkers(\n\t\t\t\treplaceByte(\n\t\t\t\t\tstripTrailingWhitespace(\n\t\t\t\t\t\tstripStartupProfileHash(\n\t\t\t\t\t\t\tnormalizeSlashes(\n\t\t\t\t\t\t\t\tnormalizeCwd(\n\t\t\t\t\t\t\t\t\tnormalizeTempDirs(\n\t\t\t\t\t\t\t\t\t\tnormalizeOAuthUrlParams(\n\t\t\t\t\t\t\t\t\t\t\tstripTimings(replaceThinSpaces(input))\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t)\n\t\t\t)\n\t\t)\n\t);\n}\n\n/**\n * The OAuth authorize URL contains a random `state` and PKCE `code_challenge`\n * on every run. Replace those two values (but not `code_challenge_method`) with\n * stable placeholders so snapshots of the login URL stay deterministic.\n */\nfunction normalizeOAuthUrlParams(str: string): string {\n\treturn str\n\t\t.replace(/([?&]state=)[^&\\s]+/g, \"$1<OAUTH_STATE>\")\n\t\t.replace(/([?&]code_challenge=)[^&\\s]+/g, \"$1<OAUTH_CODE_CHALLENGE>\");\n}\n\nfunction stripStartupProfileHash(str: string): string {\n\treturn str.replace(/startup-profile-[^/]+/g, \"startup-profile-<HASH>\");\n}\n\nfunction normalizeTables(str: string): string {\n\treturn str\n\t\t.replaceAll(/┌─+/g, \"┌─\")\n\t\t.replaceAll(/┬─+/g, \"┬─\")\n\t\t.replaceAll(/ +│/g, \" │\")\n\t\t.replaceAll(/├─+/g, \"├─\")\n\t\t.replaceAll(/┼─+/g, \"┼─\")\n\t\t.replaceAll(/└─+/g, \"└─\")\n\t\t.replaceAll(/┴─+/g, \"┴─\");\n}\n\nfunction normalizeDates(str: string): string {\n\treturn str\n\t\t.replaceAll(/\\d+ (years?|days?|months?) ago/g, \"[mock-time-ago]\")\n\t\t.replaceAll(mockCreateDate.toLocaleString(), \"[mock-create-date]\")\n\t\t.replaceAll(mockModifiedDate.toLocaleString(), \"[mock-modified-date]\")\n\t\t.replaceAll(mockStartDate.toLocaleString(), \"[mock-start-date]\")\n\t\t.replaceAll(mockQueuedDate.toLocaleString(), \"[mock-queued-date]\")\n\t\t.replaceAll(mockEndDate.toLocaleString(), \"[mock-end-date]\");\n}\n\n/**\n * Normalize error `X` markers.\n *\n * Windows gets a different character.\n */\nfunction normalizeErrorMarkers(str: string): string {\n\treturn str.replaceAll(\"✘\", \"X\");\n}\n\n/**\n * Ensure slashes in the `str` are OS file-system agnostic.\n *\n * Use this in snapshot tests to be resilient to file-system differences.\n */\nfunction normalizeSlashes(str: string): string {\n\treturn str.replace(/\\\\/g, \"/\");\n}\n\n/**\n * Replace any use of the current working directory with `<cwd>` to avoid cross OS issues.\n */\nfunction normalizeCwd(str: string): string {\n\treturn str.replaceAll(process.cwd(), \"<cwd>\");\n}\n\n/**\n * Strip \"timing data\" out of the `stdout` string, since this is not always deterministic.\n *\n * Use this in snapshot tests to be resilient to slight changes in timing of processing.\n */\nfunction stripTimings(stdout: string): string {\n\treturn stdout.replace(/\\(\\d+\\.\\d+ sec\\)/g, \"(TIMINGS)\");\n}\n\nfunction stripTrailingWhitespace(str: string): string {\n\treturn str.replace(/[^\\S\\n]+\\n/g, \"\\n\");\n}\n\n/**\n * Removing leading kilobit (tenth of a byte) from test output due to\n * variation causing every few tests the value to change by ± .01\n */\nfunction replaceByte(stdout: string): string {\n\treturn stdout.replaceAll(/\\d+\\.\\d+ KiB/g, \"xx KiB\");\n}\n\n/**\n * Temp directories are created with random names, so we replace all comments temp dirs in them\n */\nfunction normalizeTempDirs(stdout: string): string {\n\treturn stdout.replaceAll(/\\/\\/.+\\/tmp.+/g, \"//tmpdir\");\n}\n\n/**\n * Replace thin space characters (U+200A) with regular spaces to normalize output\n */\nfunction replaceThinSpaces(str: string): string {\n\treturn str.replaceAll(/\\u200a/g, \" \");\n}\n","import * as util from \"node:util\";\nimport { afterEach, beforeEach, vi } from \"vitest\";\nimport { normalizeString } from \"./normalize\";\nimport type { MockInstance } from \"vitest\";\n\n/**\n * We use this module to mock console methods, and optionally\n * assert on the values they're called with in our tests.\n */\n\nlet debugSpy: MockInstance,\n\tlogSpy: MockInstance,\n\tinfoSpy: MockInstance,\n\terrorSpy: MockInstance,\n\twarnSpy: MockInstance;\n\n/**\n * An object containing the normalized output of each console method.\n *\n * We use `defineProperties` to add non enumerable methods to the object,\n * so they don't show up in test assertions that iterate over the object's keys.\n * i.e. `expect(std).toMatchInlineSnapshot('...')`;\n */\nconst std = Object.defineProperties(\n\t{ debug: \"\", out: \"\", info: \"\", err: \"\", warn: \"\", getAndClearOut: () => \"\" },\n\t{\n\t\tdebug: {\n\t\t\tget: () => normalizeOutput(debugSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\tout: {\n\t\t\tget: () => normalizeOutput(logSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\tinfo: {\n\t\t\tget: () => normalizeOutput(infoSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\terr: {\n\t\t\tget: () => normalizeOutput(errorSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\twarn: {\n\t\t\tget: () => normalizeOutput(warnSpy),\n\t\t\tenumerable: true,\n\t\t},\n\t\t/**\n\t\t * Return the content of the mocked stdout and clear the mock's history.\n\t\t *\n\t\t * Helpful for tests that need to assert on multiple sequential console outputs.\n\t\t */\n\t\tgetAndClearOut: {\n\t\t\tvalue: () => {\n\t\t\t\tconst output = normalizeOutput(logSpy);\n\t\t\t\tlogSpy.mockClear();\n\t\t\t\treturn output;\n\t\t\t},\n\t\t\tenumerable: false,\n\t\t},\n\t}\n);\n\nfunction normalizeOutput(spy: MockInstance, join = \"\\n\"): string {\n\treturn normalizeString(captureCalls(spy, join));\n}\n\nfunction captureCalls(spy: MockInstance, join = \"\\n\"): string {\n\treturn spy.mock.calls\n\t\t.map((args: unknown[]) => util.format(\"%s\", ...args))\n\t\t.join(join);\n}\n\nexport function mockConsoleMethods() {\n\tbeforeEach(() => {\n\t\tdebugSpy = vi.spyOn(console, \"debug\").mockImplementation(() => {});\n\t\tlogSpy = vi.spyOn(console, \"log\").mockImplementation(() => {});\n\t\tinfoSpy = vi.spyOn(console, \"info\").mockImplementation(() => {});\n\t\terrorSpy = vi.spyOn(console, \"error\").mockImplementation(() => {});\n\t\twarnSpy = vi.spyOn(console, \"warn\").mockImplementation(() => {});\n\t});\n\tafterEach(() => {\n\t\tdebugSpy.mockRestore();\n\t\tlogSpy.mockRestore();\n\t\tinfoSpy.mockRestore();\n\t\terrorSpy.mockRestore();\n\t\twarnSpy.mockRestore();\n\t});\n\treturn std;\n}\n\nexport function createDeferred<T>() {\n\tlet resolve: ((value: T) => void) | undefined;\n\tlet reject: ((reason?: unknown) => void) | undefined;\n\tconst promise = new Promise<T>((_resolve, _reject) => {\n\t\tresolve = _resolve;\n\t\treject = _reject;\n\t});\n\n\tif (!resolve || !reject) {\n\t\tthrow new Error(\"Failed to create deferred promise\");\n\t}\n\n\treturn {\n\t\tpromise,\n\t\tresolve,\n\t\treject,\n\t};\n}\n","export const EMAIL_HEADER_NAME_CASES = [\n\t[\"accepts RFC token characters\", \"X-Custom_Header.1\", true],\n\t[\"rejects spaces\", \"X Header\", false],\n\t[\"rejects colons\", \"X:Header\", false],\n\t[\"rejects an empty name\", \"\", false],\n] as const;\n\nexport const EMAIL_HEADER_VALUE_CASES = [\n\t[\"accepts plain text\", \"custom value\", true],\n\t[\"accepts LF-delimited lines\", \"first\\nsecond\", true],\n\t[\"accepts CRLF-delimited lines\", \"first\\r\\nsecond\", true],\n\t[\n\t\t\"accepts an injection-shaped line for safe folding\",\n\t\t\"safe\\nBcc: victim@example.com\",\n\t\ttrue,\n\t],\n\t[\"rejects a bare carriage return\", \"first\\rsecond\", false],\n\t[\"rejects a tab\", \"first\\tsecond\", false],\n\t[\"rejects DEL\", \"first\\u007fsecond\", false],\n] as const;\n\nexport const MANAGED_EMAIL_HEADER_CASES = [\n\t[\"Bcc\", true],\n\t[\"Cc\", true],\n\t[\"Content-Transfer-Encoding\", true],\n\t[\"CONTENT-TYPE\", true],\n\t[\"Date\", true],\n\t[\"From\", true],\n\t[\"MIME-Version\", true],\n\t[\"Reply-To\", true],\n\t[\"Subject\", true],\n\t[\"mEsSaGe-Id\", true],\n\t[\"To\", true],\n\t[\"X-Custom-Header\", false],\n] as const;\n","import * as fs from \"node:fs\";\nimport os from \"node:os\";\nimport * as path from \"node:path\";\nimport { afterEach, beforeEach, vi } from \"vitest\";\nimport { removeDir } from \"../fs-helpers\";\n\nconst originalCwd = process.cwd();\n\nexport function runInTempDir({ homedir } = { homedir: \"./home\" }) {\n\tlet tmpDir: string;\n\n\tbeforeEach(() => {\n\t\t// Use realpath because the temporary path can point to a symlink rather than the actual path.\n\t\ttmpDir = fs.realpathSync(\n\t\t\tfs.mkdtempSync(path.join(os.tmpdir(), \"wrangler-tests\"))\n\t\t);\n\n\t\tprocess.chdir(tmpDir);\n\t\tvi.stubEnv(\"PWD\", tmpDir);\n\n\t\t// Override where the home directory is so that we can write our own user config,\n\t\t// without destroying the real thing.\n\t\t// The path that is returned from `homedir()` should be absolute.\n\t\tconst absHomedir = path.resolve(tmpDir, homedir);\n\t\tfs.mkdirSync(absHomedir, { recursive: true });\n\t\tvi.stubEnv(\"HOME\", absHomedir);\n\t\tvi.stubEnv(\"XDG_CONFIG_HOME\", path.resolve(absHomedir, \".config\"));\n\t});\n\n\tafterEach(() => {\n\t\tprocess.chdir(originalCwd);\n\t\tremoveDir(tmpDir, { fireAndForget: true });\n\t});\n}\n","// Seeds the `root` directory on the file system with some data. Use in\n\nimport { mkdir, writeFile } from \"node:fs/promises\";\nimport path from \"node:path\";\n\n// combination with `dedent` for petty formatting of seeded contents.\nexport async function seed(files: Record<string, string | Uint8Array>) {\n\tfor (const [name, contents] of Object.entries(files)) {\n\t\tconst filePath = path.resolve(name);\n\t\tawait mkdir(path.dirname(filePath), { recursive: true });\n\t\tawait writeFile(filePath, contents);\n\t}\n}\n","import * as fs from \"node:fs\";\nimport { dirname, relative } from \"node:path\";\nimport { formatConfigSnippet } from \"../config\";\nimport { PATH_TO_DEPLOY_CONFIG } from \"../constants\";\nimport { parseJSONC, parseTOML } from \"../parse\";\nimport type { RawConfig } from \"../config\";\nimport type { RedirectedRawConfig } from \"../config/config\";\n\n/** Write a mock wrangler config file to disk. */\nexport function writeWranglerConfig(\n\tconfig: RawConfig = {},\n\tpath = \"./wrangler.toml\"\n) {\n\tconst json = /\\.jsonc?$/.test(path);\n\tfs.mkdirSync(dirname(path), { recursive: true });\n\tfs.writeFileSync(\n\t\tpath,\n\t\tformatConfigSnippet(\n\t\t\t{\n\t\t\t\tcompatibility_date: \"2022-01-12\",\n\t\t\t\tname: \"test-name\",\n\t\t\t\t...config,\n\t\t\t},\n\t\t\tpath,\n\t\t\t!!json\n\t\t),\n\t\t\"utf-8\"\n\t);\n}\n\nexport function writeRedirectedWranglerConfig(\n\tconfig: RedirectedRawConfig,\n\tpath = \"./dist/wrangler.json\"\n) {\n\tconst json = /\\.jsonc?$/.test(path);\n\tfs.mkdirSync(dirname(path), { recursive: true });\n\tfs.writeFileSync(\n\t\tpath,\n\t\tformatConfigSnippet(\n\t\t\t{\n\t\t\t\tcompatibility_date: \"2022-01-12\",\n\t\t\t\tname: \"test-name\",\n\t\t\t\t...config,\n\t\t\t},\n\t\t\tpath,\n\t\t\t!!json\n\t\t),\n\t\t\"utf-8\"\n\t);\n\twriteDeployRedirectConfig(path);\n}\n\nexport function writeDeployRedirectConfig(configPath: string) {\n\tconst config: RedirectedRawConfig = {\n\t\tconfigPath: relative(dirname(PATH_TO_DEPLOY_CONFIG), configPath),\n\t};\n\tfs.mkdirSync(dirname(PATH_TO_DEPLOY_CONFIG), { recursive: true });\n\tfs.writeFileSync(\n\t\tPATH_TO_DEPLOY_CONFIG,\n\t\tformatConfigSnippet(config, \".json\", true),\n\t\t\"utf-8\"\n\t);\n}\n\nexport function readWranglerConfig(path = \"./wrangler.toml\"): RawConfig {\n\tif (path.endsWith(\".toml\")) {\n\t\treturn parseTOML(fs.readFileSync(path, \"utf8\"), path) as RawConfig;\n\t}\n\n\tif (path.endsWith(\".json\") || path.endsWith(\".jsonc\")) {\n\t\treturn parseJSONC(fs.readFileSync(path, \"utf8\"), path) as RawConfig;\n\t}\n\n\treturn {};\n}\n"]}
|
package/dist/zod-format.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { _forceColour, formatZodError } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { _forceColour, formatZodError } from './chunk-VTOON473.mjs';
|
|
2
|
+
import './chunk-CGILA3WO.mjs';
|
|
3
3
|
//# sourceMappingURL=zod-format.mjs.map
|
|
4
4
|
//# sourceMappingURL=zod-format.mjs.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nightintelligence/cloudflare-workers-utils",
|
|
3
|
-
"version": "0.35.0-
|
|
3
|
+
"version": "0.35.0-patch4",
|
|
4
4
|
"description": "Internal utility package for workers-sdk. Not intended for external use — APIs may change without notice.",
|
|
5
5
|
"homepage": "https://github.com/cloudflare/workers-sdk/tree/main/packages/workers-utils#readme",
|
|
6
6
|
"bugs": {
|