Compare commits

..

1 Commits

Author SHA1 Message Date
t.behrendt d48c2e9a16 refactor: to node action
CI / Test (pull_request) Successful in 11s
CI / Dry-Run (pull_request) Failing after 22s
CI / Check Dist (pull_request) Successful in 11s
2026-06-27 13:38:20 +02:00
8 changed files with 255 additions and 1018 deletions
+3 -4
View File
@@ -6,7 +6,6 @@ on:
- main - main
paths: paths:
- action.yml - action.yml
- dist/**
workflow_dispatch: workflow_dispatch:
jobs: jobs:
@@ -14,14 +13,14 @@ jobs:
name: Release name: Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Increment tag - name: Increment tag
id: tag id: tag
uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@3ab82e6aa1db388a34562f5ce6eedb598651d916 # 0.1.42 uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@e393dbb067c09fd43519392572ccf63b66cba92d # 0.1.39
with: with:
token: ${{ secrets.GITEA_TOKEN }} token: ${{ secrets.GITEA_TOKEN }}
- uses: https://gitea.t000-n.de/t.behrendt/actions/release-git-tag@3f772d0a80a510b0f06762be110276c9c8a7b7b8 # 0.2.12 - uses: https://gitea.t000-n.de/t.behrendt/actions/release-git-tag@29f50ea246d5d9a62ac3c611fa5c8a6e9846df5a # 0.2.8
with: with:
tag: ${{ steps.tag.outputs.new-tag }} tag: ${{ steps.tag.outputs.new-tag }}
+8 -8
View File
@@ -8,8 +8,8 @@ jobs:
name: Dry-Run name: Dry-Run
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Validate Renovate Config - name: Validate JSON
uses: ./ uses: ./
with: with:
json-file: renovate.json json-file: renovate.json
@@ -18,13 +18,13 @@ jobs:
name: Test name: Test
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with: with:
node-version-file: .nvmrc node-version-file: .nvmrc
- name: Cache dependencies - name: Cache dependencies
id: cache-deps id: cache-deps
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with: with:
path: | path: |
node_modules node_modules
@@ -43,13 +43,13 @@ jobs:
name: Check Dist name: Check Dist
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with: with:
node-version-file: .nvmrc node-version-file: .nvmrc
- name: Cache dependencies - name: Cache dependencies
id: cache-deps id: cache-deps
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with: with:
path: | path: |
node_modules node_modules
+3 -3
View File
@@ -8,15 +8,15 @@ jobs:
name: Release name: Release
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Increment tag - name: Increment tag
id: tag id: tag
uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@3ab82e6aa1db388a34562f5ce6eedb598651d916 # 0.1.42 uses: https://gitea.t000-n.de/t.behrendt/conventional-semantic-git-tag-increment@e393dbb067c09fd43519392572ccf63b66cba92d # 0.1.39
with: with:
token: ${{ secrets.GITEA_TOKEN }} token: ${{ secrets.GITEA_TOKEN }}
prerelease: true prerelease: true
- uses: https://gitea.t000-n.de/t.behrendt/actions/release-git-tag@3f772d0a80a510b0f06762be110276c9c8a7b7b8 # 0.2.12 - uses: https://gitea.t000-n.de/t.behrendt/actions/release-git-tag@29f50ea246d5d9a62ac3c611fa5c8a6e9846df5a # 0.2.8
with: with:
tag: ${{ steps.tag.outputs.new-tag }} tag: ${{ steps.tag.outputs.new-tag }}
+11 -27
View File
@@ -6647,8 +6647,7 @@ var require_client = /* @__PURE__ */ __commonJSMin(((exports, module) => {
this.once("connect", cb); this.once("connect", cb);
} }
[kDispatch](opts, handler) { [kDispatch](opts, handler) {
const origin = opts.origin || this[kUrl].origin; const request = new Request(opts.origin || this[kUrl].origin, opts, handler);
const request = new Request(origin, opts, handler);
this[kQueue].push(request); this[kQueue].push(request);
if (this[kResuming]) {} else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) { if (this[kResuming]) {} else if (util.bodyLength(request.body) == null && util.isIterable(request.body)) {
this[kResuming] = 1; this[kResuming] = 1;
@@ -8946,10 +8945,7 @@ var require_mock_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true); matchedMockDispatches = matchedMockDispatches.filter(({ body }) => typeof body !== "undefined" ? matchValue(body, key.body) : true);
if (matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`); if (matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for body '${key.body}' on path '${resolvedPath}'`);
matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers)); matchedMockDispatches = matchedMockDispatches.filter((mockDispatch) => matchHeaders(mockDispatch, key.headers));
if (matchedMockDispatches.length === 0) { if (matchedMockDispatches.length === 0) throw new MockNotMatchedError(`Mock dispatch not matched for headers '${typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers}' on path '${resolvedPath}'`);
const headers = typeof key.headers === "object" ? JSON.stringify(key.headers) : key.headers;
throw new MockNotMatchedError(`Mock dispatch not matched for headers '${headers}' on path '${resolvedPath}'`);
}
return matchedMockDispatches[0]; return matchedMockDispatches[0];
} }
function addMockDispatch(mockDispatches, key, data) { function addMockDispatch(mockDispatches, key, data) {
@@ -10268,8 +10264,7 @@ var require_response = /* @__PURE__ */ __commonJSMin(((exports, module) => {
static json(data, init = {}) { static json(data, init = {}) {
webidl.argumentLengthCheck(arguments, 1, "Response.json"); webidl.argumentLengthCheck(arguments, 1, "Response.json");
if (init !== null) init = webidl.converters.ResponseInit(init); if (init !== null) init = webidl.converters.ResponseInit(init);
const bytes = textEncoder.encode(serializeJavascriptValueToJSONString(data)); const body = extractBody(textEncoder.encode(serializeJavascriptValueToJSONString(data)));
const body = extractBody(bytes);
const responseObject = fromInnerResponse(makeResponse({}), "response"); const responseObject = fromInnerResponse(makeResponse({}), "response");
initializeResponse(responseObject, init, { initializeResponse(responseObject, init, {
body: body[0], body: body[0],
@@ -11238,8 +11233,7 @@ var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
taskDestination = request.client.globalObject; taskDestination = request.client.globalObject;
crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability; crossOriginIsolatedCapability = request.client.crossOriginIsolatedCapability;
} }
const currentTime = coarsenedSharedCurrentTime(crossOriginIsolatedCapability); const timingInfo = createOpaqueTimingInfo({ startTime: coarsenedSharedCurrentTime(crossOriginIsolatedCapability) });
const timingInfo = createOpaqueTimingInfo({ startTime: currentTime });
const fetchParams = { const fetchParams = {
controller: new Fetch(dispatcher), controller: new Fetch(dispatcher),
request, request,
@@ -11347,8 +11341,7 @@ var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
response.headersList.set("content-type", type, true); response.headersList.set("content-type", type, true);
} else { } else {
response.rangeRequested = true; response.rangeRequested = true;
const rangeHeader = request.headersList.get("range", true); const rangeValue = simpleRangeHeaderValue(request.headersList.get("range", true), true);
const rangeValue = simpleRangeHeaderValue(rangeHeader, true);
if (rangeValue === "failure") return Promise.resolve(makeNetworkError("failed to fetch the data URL")); if (rangeValue === "failure") return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue; let { rangeStartValue: rangeStart, rangeEndValue: rangeEnd } = rangeValue;
if (rangeStart === null) { if (rangeStart === null) {
@@ -11371,8 +11364,7 @@ var require_fetch = /* @__PURE__ */ __commonJSMin(((exports, module) => {
return Promise.resolve(response); return Promise.resolve(response);
} }
case "data:": { case "data:": {
const currentURL = requestCurrentURL(request); const dataURLStruct = dataURLProcessor(requestCurrentURL(request));
const dataURLStruct = dataURLProcessor(currentURL);
if (dataURLStruct === "failure") return Promise.resolve(makeNetworkError("failed to fetch the data URL")); if (dataURLStruct === "failure") return Promise.resolve(makeNetworkError("failed to fetch the data URL"));
const mimeType = serializeAMimeType(dataURLStruct.mimeType); const mimeType = serializeAMimeType(dataURLStruct.mimeType);
return Promise.resolve(makeResponse({ return Promise.resolve(makeResponse({
@@ -12731,10 +12723,8 @@ var require_cache = /* @__PURE__ */ __commonJSMin(((exports, module) => {
}); });
const clonedResponse = cloneResponse(innerResponse); const clonedResponse = cloneResponse(innerResponse);
const bodyReadPromise = createDeferredPromise(); const bodyReadPromise = createDeferredPromise();
if (innerResponse.body != null) { if (innerResponse.body != null) readAllBytes(innerResponse.body.stream.getReader()).then(bodyReadPromise.resolve, bodyReadPromise.reject);
const reader = innerResponse.body.stream.getReader(); else bodyReadPromise.resolve(void 0);
readAllBytes(reader).then(bodyReadPromise.resolve, bodyReadPromise.reject);
} else bodyReadPromise.resolve(void 0);
/** @type {CacheBatchOperation[]} */ /** @type {CacheBatchOperation[]} */
const operations = []; const operations = [];
/** @type {CacheBatchOperation} */ /** @type {CacheBatchOperation} */
@@ -13026,10 +13016,7 @@ var require_cachestorage = /* @__PURE__ */ __commonJSMin(((exports, module) => {
request = webidl.converters.RequestInfo(request); request = webidl.converters.RequestInfo(request);
options = webidl.converters.MultiCacheQueryOptions(options); options = webidl.converters.MultiCacheQueryOptions(options);
if (options.cacheName != null) { if (options.cacheName != null) {
if (this.#caches.has(options.cacheName)) { if (this.#caches.has(options.cacheName)) return await new Cache(kConstruct, this.#caches.get(options.cacheName)).match(request, options);
const cacheList = this.#caches.get(options.cacheName);
return await new Cache(kConstruct, cacheList).match(request, options);
}
} else for (const cacheList of this.#caches.values()) { } else for (const cacheList of this.#caches.values()) {
const response = await new Cache(kConstruct, cacheList).match(request, options); const response = await new Cache(kConstruct, cacheList).match(request, options);
if (response !== void 0) return response; if (response !== void 0) return response;
@@ -13057,10 +13044,7 @@ var require_cachestorage = /* @__PURE__ */ __commonJSMin(((exports, module) => {
const prefix = "CacheStorage.open"; const prefix = "CacheStorage.open";
webidl.argumentLengthCheck(arguments, 1, prefix); webidl.argumentLengthCheck(arguments, 1, prefix);
cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName"); cacheName = webidl.converters.DOMString(cacheName, prefix, "cacheName");
if (this.#caches.has(cacheName)) { if (this.#caches.has(cacheName)) return new Cache(kConstruct, this.#caches.get(cacheName));
const cache = this.#caches.get(cacheName);
return new Cache(kConstruct, cache);
}
const cache = []; const cache = [];
this.#caches.set(cacheName, cache); this.#caches.set(cacheName, cache);
return new Cache(kConstruct, cache); return new Cache(kConstruct, cache);
@@ -22244,7 +22228,7 @@ const validateJson = async (jsonFileContent) => {
const schemaUrl = new URL(schema); const schemaUrl = new URL(schema);
const schemaText = await (await fetch(schemaUrl.toString())).text(); const schemaText = await (await fetch(schemaUrl.toString())).text();
const schemaObject = JSON.parse(schemaText); const schemaObject = JSON.parse(schemaText);
const validator = new import_ajv.default({ strict: false }); const validator = new import_ajv.default();
if (!validator.compile(schemaObject)(jsonObject)) throw new Error(`JSON file is not valid: ${validator.errorsText()}`); if (!validator.compile(schemaObject)(jsonObject)) throw new Error(`JSON file is not valid: ${validator.errorsText()}`);
}; };
//#endregion //#endregion
+220 -964
View File
File diff suppressed because it is too large Load Diff
+6 -6
View File
@@ -15,11 +15,11 @@
"ajv": "8.20.0" "ajv": "8.20.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "24.13.3", "@types/node": "24.13.2",
"@vitest/coverage-v8": "4.1.10", "@vitest/coverage-v8": "4.1.9",
"oxfmt": "0.61.0", "oxfmt": "0.56.0",
"rolldown": "1.2.0", "rolldown": "1.1.3",
"typescript": "7.0.2", "typescript": "6.0.3",
"vitest": "4.1.10" "vitest": "4.1.9"
} }
} }
+3 -3
View File
@@ -58,10 +58,10 @@ describe("validateJson()", () => {
{ {
ok: true, ok: true,
text: async () => text: async () =>
({ JSON.stringify({
despiteThisBeingValidJson: despiteThisBeingValidJson:
"toString() breaks it, making it invalid", "toString() breaks it, making it invalid",
}).toString(), }),
}, },
); );
@@ -69,7 +69,7 @@ describe("validateJson()", () => {
$schema: "https://json-schema.org/draft-07/schema", $schema: "https://json-schema.org/draft-07/schema",
}); });
await expect(validateJson(jsonFile)).rejects.toThrow( await expect(validateJson(jsonFile)).rejects.toThrow(
'"[object Object]" is not valid JSON', 'strict mode: unknown keyword: "despiteThisBeingValidJson"',
); );
}); });
+1 -3
View File
@@ -14,9 +14,7 @@ export const validateJson = async (jsonFileContent: string): Promise<void> => {
const schemaText = await schemaContent.text(); const schemaText = await schemaContent.text();
const schemaObject = JSON.parse(schemaText); const schemaObject = JSON.parse(schemaText);
const validator = new Ajv({ const validator = new Ajv();
strict: false,
});
const validate = validator.compile(schemaObject); const validate = validator.compile(schemaObject);
const isValid = validate(jsonObject); const isValid = validate(jsonObject);
if (!isValid) { if (!isValid) {