@fedify/lint 2.5.0-dev.2562 → 2.5.0-dev.2597
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 +4 -0
- package/deno.json +1 -1
- package/dist/index.cjs +20 -19
- package/dist/index.js +9 -8
- package/dist/{outbox-listener-delivery-required-dYSeGV9z.js → outbox-listener-delivery-required-DM_GhAVU.js} +73 -30
- package/dist/{outbox-listener-delivery-required-ByRc3NFp.cjs → outbox-listener-delivery-required-DgYT5GSv.cjs} +78 -29
- package/dist/oxlint.cjs +20 -19
- package/dist/oxlint.js +9 -8
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -82,6 +82,10 @@ federation code:
|
|
|
82
82
|
- **`actor-id-required`**: Ensures all actors have an `id` property
|
|
83
83
|
- **`actor-id-mismatch`**: Validates that actor IDs match the expected URI
|
|
84
84
|
from `Context.getActorUri()`
|
|
85
|
+
- **`actor-preferred-username-required`**: Ensures actors expose a stable
|
|
86
|
+
`preferredUsername`
|
|
87
|
+
- **`actor-profile-url-required`**: Ensures actors include a `url` (or
|
|
88
|
+
`urls`) pointing to their human-readable profile page
|
|
85
89
|
- **`actor-public-key-required`**: Ensures actors have public keys for
|
|
86
90
|
HTTP Signatures
|
|
87
91
|
- **`actor-assertion-method-required`**: Validates assertion methods for
|
package/deno.json
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -24,7 +24,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
24
24
|
enumerable: true
|
|
25
25
|
}) : target, mod));
|
|
26
26
|
//#endregion
|
|
27
|
-
const require_outbox_listener_delivery_required = require("./outbox-listener-delivery-required-
|
|
27
|
+
const require_outbox_listener_delivery_required = require("./outbox-listener-delivery-required-DgYT5GSv.cjs");
|
|
28
28
|
let _fxts_core = require("@fxts/core");
|
|
29
29
|
let _typescript_eslint_parser = require("@typescript-eslint/parser");
|
|
30
30
|
_typescript_eslint_parser = __toESM(_typescript_eslint_parser, 1);
|
|
@@ -34,29 +34,30 @@ _typescript_eslint_parser = __toESM(_typescript_eslint_parser, 1);
|
|
|
34
34
|
* Provides lint rules for validating Fedify federation code.
|
|
35
35
|
*/
|
|
36
36
|
const rules = {
|
|
37
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorIdMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
38
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorIdRequired]: require_outbox_listener_delivery_required.eslint$
|
|
39
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
40
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
41
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
42
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
43
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
44
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
45
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
46
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
47
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
48
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
49
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
50
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
51
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
52
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
37
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorIdMismatch]: require_outbox_listener_delivery_required.eslint$21,
|
|
38
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorIdRequired]: require_outbox_listener_delivery_required.eslint$20,
|
|
39
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyRequired]: require_outbox_listener_delivery_required.eslint$22,
|
|
40
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyMismatch]: require_outbox_listener_delivery_required.eslint$23,
|
|
41
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyRequired]: require_outbox_listener_delivery_required.eslint$24,
|
|
42
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyMismatch]: require_outbox_listener_delivery_required.eslint$25,
|
|
43
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$14,
|
|
44
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$15,
|
|
45
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyRequired]: require_outbox_listener_delivery_required.eslint$16,
|
|
46
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$17,
|
|
47
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyRequired]: require_outbox_listener_delivery_required.eslint$28,
|
|
48
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$29,
|
|
49
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyRequired]: require_outbox_listener_delivery_required.eslint$26,
|
|
50
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyMismatch]: require_outbox_listener_delivery_required.eslint$27,
|
|
51
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$18,
|
|
52
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$19,
|
|
53
53
|
[require_outbox_listener_delivery_required.RULE_IDS.actorSharedInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$9,
|
|
54
54
|
[require_outbox_listener_delivery_required.RULE_IDS.actorSharedInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$10,
|
|
55
55
|
[require_outbox_listener_delivery_required.RULE_IDS.actorUploadMediaPropertyRequired]: require_outbox_listener_delivery_required.eslint$7,
|
|
56
56
|
[require_outbox_listener_delivery_required.RULE_IDS.actorUploadMediaPropertyMismatch]: require_outbox_listener_delivery_required.eslint$8,
|
|
57
57
|
[require_outbox_listener_delivery_required.RULE_IDS.actorPublicKeyRequired]: require_outbox_listener_delivery_required.eslint$11,
|
|
58
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorAssertionMethodRequired]: require_outbox_listener_delivery_required.eslint$
|
|
59
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorPreferredUsernameRequired]: require_outbox_listener_delivery_required.eslint$
|
|
58
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorAssertionMethodRequired]: require_outbox_listener_delivery_required.eslint$30,
|
|
59
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorPreferredUsernameRequired]: require_outbox_listener_delivery_required.eslint$13,
|
|
60
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorProfileUrlRequired]: require_outbox_listener_delivery_required.eslint$12,
|
|
60
61
|
[require_outbox_listener_delivery_required.RULE_IDS.collectionFilteringNotImplemented]: require_outbox_listener_delivery_required.eslint$6,
|
|
61
62
|
[require_outbox_listener_delivery_required.RULE_IDS.outboxListenerDeliveryRequired]: require_outbox_listener_delivery_required.eslint,
|
|
62
63
|
[require_outbox_listener_delivery_required.RULE_IDS.outboxListenerDeliveryNotAwaited]: require_outbox_listener_delivery_required.eslint$1,
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as eslint$
|
|
1
|
+
import { A as eslint$11, C as eslint$2, D as eslint$12, E as eslint$5, M as RULE_IDS, N as name, O as eslint$13, P as version, S as eslint, T as eslint$4, _ as eslint$8, a as eslint$29, b as eslint$15, c as eslint$18, d as eslint$17, f as eslint$20, g as eslint$7, h as eslint$6, i as eslint$28, j as eslint$21, k as eslint$10, l as eslint$19, m as eslint$22, n as eslint$26, o as eslint$30, p as eslint$23, r as eslint$27, s as eslint$24, t as eslint$25, u as eslint$16, v as eslint$9, w as eslint$3, x as eslint$1, y as eslint$14 } from "./outbox-listener-delivery-required-DM_GhAVU.js";
|
|
2
2
|
import { fromEntries, keys, map, pipe } from "@fxts/core";
|
|
3
3
|
import parser from "@typescript-eslint/parser";
|
|
4
4
|
//#region src/index.ts
|
|
@@ -30,13 +30,14 @@ const rules = {
|
|
|
30
30
|
[RULE_IDS.actorPublicKeyRequired]: eslint$20,
|
|
31
31
|
[RULE_IDS.actorAssertionMethodRequired]: eslint$21,
|
|
32
32
|
[RULE_IDS.actorPreferredUsernameRequired]: eslint$22,
|
|
33
|
-
[RULE_IDS.
|
|
34
|
-
[RULE_IDS.
|
|
35
|
-
[RULE_IDS.
|
|
36
|
-
[RULE_IDS.
|
|
37
|
-
[RULE_IDS.
|
|
38
|
-
[RULE_IDS.
|
|
39
|
-
[RULE_IDS.
|
|
33
|
+
[RULE_IDS.actorProfileUrlRequired]: eslint$23,
|
|
34
|
+
[RULE_IDS.collectionFilteringNotImplemented]: eslint$24,
|
|
35
|
+
[RULE_IDS.outboxListenerDeliveryRequired]: eslint$25,
|
|
36
|
+
[RULE_IDS.outboxListenerDeliveryNotAwaited]: eslint$26,
|
|
37
|
+
[RULE_IDS.mediaUploaderObjectUriRequired]: eslint$27,
|
|
38
|
+
[RULE_IDS.mediaUploaderAuthorizationRequired]: eslint$28,
|
|
39
|
+
[RULE_IDS.denoKvStoreDeprecated]: eslint$29,
|
|
40
|
+
[RULE_IDS.denoKvMessageQueueDeprecated]: eslint$30
|
|
40
41
|
};
|
|
41
42
|
const recommendedRuleIds = [RULE_IDS.actorIdMismatch, RULE_IDS.actorIdRequired];
|
|
42
43
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { always, every, head, isEmpty, isObject, negate, pipe, pipeLazy, prop, some, toArray, unless, when } from "@fxts/core";
|
|
2
2
|
//#region deno.json
|
|
3
3
|
var name = "@fedify/lint";
|
|
4
|
-
var version = "2.5.0-dev.
|
|
4
|
+
var version = "2.5.0-dev.2597+7bed9e2b";
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/lib/const.ts
|
|
7
7
|
/**
|
|
@@ -118,6 +118,16 @@ const properties = {
|
|
|
118
118
|
setter: "setActorDispatcher",
|
|
119
119
|
requiresIdentifier: false,
|
|
120
120
|
pluralName: "preferredUsernames"
|
|
121
|
+
},
|
|
122
|
+
url: {
|
|
123
|
+
name: "url",
|
|
124
|
+
path: ["url"],
|
|
125
|
+
setter: "setActorDispatcher",
|
|
126
|
+
requiresIdentifier: false,
|
|
127
|
+
pluralName: "urls",
|
|
128
|
+
reason: "remote fediverse software uses it as the link to the actor's profile page",
|
|
129
|
+
recommendation: "Set `url` (or the plural `urls` initializer) to the actor's human-readable profile URL.",
|
|
130
|
+
requireNonEmptyValue: true
|
|
121
131
|
}
|
|
122
132
|
};
|
|
123
133
|
/**
|
|
@@ -137,6 +147,7 @@ const RULE_IDS = {
|
|
|
137
147
|
actorPublicKeyRequired: "actor-public-key-required",
|
|
138
148
|
actorAssertionMethodRequired: "actor-assertion-method-required",
|
|
139
149
|
actorPreferredUsernameRequired: "actor-preferred-username-required",
|
|
150
|
+
actorProfileUrlRequired: "actor-profile-url-required",
|
|
140
151
|
actorIdMismatch: "actor-id-mismatch",
|
|
141
152
|
actorFollowingPropertyMismatch: "actor-following-property-mismatch",
|
|
142
153
|
actorFollowersPropertyMismatch: "actor-followers-property-mismatch",
|
|
@@ -163,15 +174,17 @@ const RULE_IDS = {
|
|
|
163
174
|
*
|
|
164
175
|
* @param name - The property name (e.g., "id", "inbox", "following")
|
|
165
176
|
*/
|
|
166
|
-
const actorPropertyRequired = ({ setter, path, getter, requiresIdentifier = true }) => {
|
|
177
|
+
const actorPropertyRequired = ({ setter, path, getter, requiresIdentifier = true, reason, recommendation: recommendationOverride }) => {
|
|
167
178
|
const propertyPath = path.join(".");
|
|
168
|
-
|
|
179
|
+
const defaultRecommendation = getter == null ? `Set the \`${propertyPath}\` property directly on the actor object.` : `Use \`${getExpectedCall({
|
|
169
180
|
ctxName: "Context",
|
|
170
181
|
methodName: getter,
|
|
171
182
|
idName: "identifier",
|
|
172
183
|
path: path.join("."),
|
|
173
184
|
requiresIdentifier
|
|
174
|
-
})}\` for the \`${propertyPath}\` property URI
|
|
185
|
+
})}\` for the \`${propertyPath}\` property URI.`;
|
|
186
|
+
const recommendation = recommendationOverride ?? defaultRecommendation;
|
|
187
|
+
return `When \`${setter}\` is configured, the \`${propertyPath}\` property is recommended${reason == null ? "" : ` because ${reason}`}. ${recommendation}`;
|
|
175
188
|
};
|
|
176
189
|
/**
|
|
177
190
|
* Generates error message for *-mismatch rules.
|
|
@@ -249,12 +262,20 @@ const isSetActorDispatcherCall = (node) => allOf(hasMemberExpressionCallee, hasI
|
|
|
249
262
|
const hasMinParams = (min) => (fn) => fn.params.length >= min;
|
|
250
263
|
//#endregion
|
|
251
264
|
//#region src/lib/property-checker.ts
|
|
265
|
+
const getKeyName = (node) => {
|
|
266
|
+
const key = node.key;
|
|
267
|
+
if (key.type === "Identifier" && !node.computed) return key.name;
|
|
268
|
+
if (key.type === "Literal" && typeof key.value === "string") return key.value;
|
|
269
|
+
return null;
|
|
270
|
+
};
|
|
252
271
|
/**
|
|
253
|
-
* Checks if a node has a key with a specific name
|
|
272
|
+
* Checks if a node has a key with a specific name, whether the key is written
|
|
273
|
+
* as an identifier (`url`) or as a string literal (`"url"` or `["url"]`).
|
|
274
|
+
* Computed identifier keys stay dynamic and are not matched.
|
|
254
275
|
*/
|
|
255
|
-
const hasKeyName = (propertyName) => (node) =>
|
|
276
|
+
const hasKeyName = (propertyName) => (node) => getKeyName(node) === propertyName;
|
|
256
277
|
/**
|
|
257
|
-
* Checks if a node is a Property with
|
|
278
|
+
* Checks if a node is a Property with a specific key name.
|
|
258
279
|
*/
|
|
259
280
|
const isPropertyWithName = (propertyName) => (node) => allOf(isNodeType("Property"), hasKeyName(propertyName))(node);
|
|
260
281
|
/**
|
|
@@ -300,10 +321,26 @@ const unwrapTypeScriptExpression = (node) => {
|
|
|
300
321
|
}
|
|
301
322
|
};
|
|
302
323
|
const isNullLiteral = (node) => node.type === "Literal" && node.value === null;
|
|
324
|
+
const isUndefinedExpression = (node) => node.type === "Identifier" && node.name === "undefined" || node.type === "UnaryExpression" && node.operator === "void";
|
|
303
325
|
const isTombstoneExpression = (node) => node.type === "NewExpression" && node.callee.type === "Identifier" && node.callee.name === "Tombstone";
|
|
326
|
+
/**
|
|
327
|
+
* Checks whether a property initializer visibly carries a value.
|
|
328
|
+
*
|
|
329
|
+
* A `null` literal, `undefined`, `void`, or an empty array literal means
|
|
330
|
+
* there is no value for rules that require a profile URL, even though the
|
|
331
|
+
* property key is present. TypeScript wrappers such as `as`, `satisfies`,
|
|
332
|
+
* and non-null assertions are unwrapped first.
|
|
333
|
+
*/
|
|
334
|
+
const isNonEmptyInitializer = (node) => {
|
|
335
|
+
const value = node.type === "AssignmentPattern" ? node.right : node;
|
|
336
|
+
const expression = unwrapTypeScriptExpression(value);
|
|
337
|
+
if (isNullLiteral(expression) || isUndefinedExpression(expression)) return false;
|
|
338
|
+
if (expression.type === "ArrayExpression") return expression.elements.length > 0;
|
|
339
|
+
return true;
|
|
340
|
+
};
|
|
304
341
|
const checkBranchWith = (propertyChecker) => (branch) => {
|
|
305
342
|
const expression = unwrapTypeScriptExpression(branch);
|
|
306
|
-
if (isNullLiteral(expression) || isTombstoneExpression(expression)) return true;
|
|
343
|
+
if (isNullLiteral(expression) || isUndefinedExpression(expression) || isTombstoneExpression(expression)) return true;
|
|
307
344
|
return pipe(expression, cases(isNodeType("ConditionalExpression"), checkConditionalExpression(propertyChecker), pipeLazy(extractObjectExpression, cases(isObject, checkObjectExpression(propertyChecker), always(false)))));
|
|
308
345
|
};
|
|
309
346
|
/**
|
|
@@ -319,7 +356,10 @@ const extractObjectExpression = cases(isNodeType("NewExpression"), extractFirstO
|
|
|
319
356
|
* @param propertyChecker The predicate function to check properties
|
|
320
357
|
* @returns A function that checks the ReturnStatement
|
|
321
358
|
*/
|
|
322
|
-
const checkReturnStatement = (propertyChecker) => (node) =>
|
|
359
|
+
const checkReturnStatement = (propertyChecker) => (node) => {
|
|
360
|
+
if (node.argument == null) return true;
|
|
361
|
+
return checkBranchWith(propertyChecker)(node.argument);
|
|
362
|
+
};
|
|
323
363
|
/**
|
|
324
364
|
* Creates a function that recursively checks for a property in an AST node.
|
|
325
365
|
* @param propertyChecker The predicate function to check properties
|
|
@@ -435,8 +475,9 @@ function createRequiredRule(config, description) {
|
|
|
435
475
|
const federationTracker = trackFederationVariables();
|
|
436
476
|
const dispatcherTracker = createDispatcherTracker(config.setter, federationTracker);
|
|
437
477
|
const actorDispatchers = [];
|
|
438
|
-
const
|
|
439
|
-
const
|
|
478
|
+
const valueChecker = config.requireNonEmptyValue ? isNonEmptyInitializer : Boolean;
|
|
479
|
+
const propertyChecker = createPropertyChecker(valueChecker)(config.path);
|
|
480
|
+
const pluralPropertyChecker = config.pluralName == null ? null : createPropertyChecker(valueChecker)([...config.path.slice(0, -1), config.pluralName]);
|
|
440
481
|
const propertySearcher = createPropertySearcher(pluralPropertyChecker == null ? propertyChecker : (node) => propertyChecker(node) || pluralPropertyChecker(node));
|
|
441
482
|
return {
|
|
442
483
|
VariableDeclarator: federationTracker.VariableDeclarator,
|
|
@@ -481,7 +522,7 @@ function createRequiredRuleEslint(config) {
|
|
|
481
522
|
};
|
|
482
523
|
}
|
|
483
524
|
createRequiredRuleDeno(properties.assertionMethod);
|
|
484
|
-
const eslint$
|
|
525
|
+
const eslint$30 = createRequiredRuleEslint(properties.assertionMethod);
|
|
485
526
|
//#endregion
|
|
486
527
|
//#region src/lib/mismatch.ts
|
|
487
528
|
const isIdentifierWithName = (name) => (node) => allOf(isNodeType("Identifier"), isNodeName(name))(node);
|
|
@@ -560,39 +601,41 @@ const createMismatchRuleEslint = (config) => ({
|
|
|
560
601
|
}))
|
|
561
602
|
});
|
|
562
603
|
createMismatchRuleDeno(properties.featured);
|
|
563
|
-
const eslint$
|
|
604
|
+
const eslint$29 = createMismatchRuleEslint(properties.featured);
|
|
564
605
|
createRequiredRuleDeno(properties.featured);
|
|
565
|
-
const eslint$
|
|
606
|
+
const eslint$28 = createRequiredRuleEslint(properties.featured);
|
|
566
607
|
createMismatchRuleDeno(properties.featuredTags);
|
|
567
|
-
const eslint$
|
|
608
|
+
const eslint$27 = createMismatchRuleEslint(properties.featuredTags);
|
|
568
609
|
createRequiredRuleDeno(properties.featuredTags);
|
|
569
|
-
const eslint$
|
|
610
|
+
const eslint$26 = createRequiredRuleEslint(properties.featuredTags);
|
|
570
611
|
createMismatchRuleDeno(properties.followers);
|
|
571
|
-
const eslint$
|
|
612
|
+
const eslint$25 = createMismatchRuleEslint(properties.followers);
|
|
572
613
|
createRequiredRuleDeno(properties.followers);
|
|
573
|
-
const eslint$
|
|
614
|
+
const eslint$24 = createRequiredRuleEslint(properties.followers);
|
|
574
615
|
createMismatchRuleDeno(properties.following);
|
|
575
|
-
const eslint$
|
|
616
|
+
const eslint$23 = createMismatchRuleEslint(properties.following);
|
|
576
617
|
createRequiredRuleDeno(properties.following);
|
|
577
|
-
const eslint$
|
|
618
|
+
const eslint$22 = createRequiredRuleEslint(properties.following);
|
|
578
619
|
createMismatchRuleDeno(properties.id);
|
|
579
|
-
const eslint$
|
|
620
|
+
const eslint$21 = createMismatchRuleEslint(properties.id);
|
|
580
621
|
createRequiredRuleDeno(properties.id);
|
|
581
|
-
const eslint$
|
|
622
|
+
const eslint$20 = createRequiredRuleEslint(properties.id);
|
|
582
623
|
createMismatchRuleDeno(properties.inbox);
|
|
583
|
-
const eslint$
|
|
624
|
+
const eslint$19 = createMismatchRuleEslint(properties.inbox);
|
|
584
625
|
createRequiredRuleDeno(properties.inbox);
|
|
585
|
-
const eslint$
|
|
626
|
+
const eslint$18 = createRequiredRuleEslint(properties.inbox);
|
|
586
627
|
createMismatchRuleDeno(properties.liked);
|
|
587
|
-
const eslint$
|
|
628
|
+
const eslint$17 = createMismatchRuleEslint(properties.liked);
|
|
588
629
|
createRequiredRuleDeno(properties.liked);
|
|
589
|
-
const eslint$
|
|
630
|
+
const eslint$16 = createRequiredRuleEslint(properties.liked);
|
|
590
631
|
createMismatchRuleDeno(properties.outbox);
|
|
591
|
-
const eslint$
|
|
632
|
+
const eslint$15 = createMismatchRuleEslint(properties.outbox);
|
|
592
633
|
createRequiredRuleDeno(properties.outbox);
|
|
593
|
-
const eslint$
|
|
634
|
+
const eslint$14 = createRequiredRuleEslint(properties.outbox);
|
|
594
635
|
createRequiredRuleDeno(properties.preferredUsername);
|
|
595
|
-
const eslint$
|
|
636
|
+
const eslint$13 = createRequiredRuleEslint(properties.preferredUsername);
|
|
637
|
+
createRequiredRuleDeno(properties.url);
|
|
638
|
+
const eslint$12 = createRequiredRuleEslint(properties.url);
|
|
596
639
|
createRequiredRuleDeno(properties.publicKey);
|
|
597
640
|
const eslint$11 = createRequiredRuleEslint(properties.publicKey);
|
|
598
641
|
createMismatchRuleDeno(properties.sharedInbox);
|
|
@@ -2625,4 +2668,4 @@ const eslint = {
|
|
|
2625
2668
|
})
|
|
2626
2669
|
};
|
|
2627
2670
|
//#endregion
|
|
2628
|
-
export { eslint$29 as A, eslint$22 as C, eslint$26 as D, eslint$25 as E,
|
|
2671
|
+
export { eslint$29 as A, eslint$22 as C, eslint$26 as D, eslint$25 as E, RULE_IDS as M, name as N, eslint$27 as O, version as P, eslint$21 as S, eslint$24 as T, eslint$16 as _, eslint$4 as a, eslint$19 as b, eslint$7 as c, eslint$10 as d, eslint$11 as f, eslint$15 as g, eslint$14 as h, eslint$3 as i, eslint$30 as j, eslint$28 as k, eslint$8 as l, eslint$13 as m, eslint$1 as n, eslint$5 as o, eslint$12 as p, eslint$2 as r, eslint$6 as s, eslint as t, eslint$9 as u, eslint$17 as v, eslint$23 as w, eslint$20 as x, eslint$18 as y };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
let _fxts_core = require("@fxts/core");
|
|
2
2
|
//#region deno.json
|
|
3
3
|
var name = "@fedify/lint";
|
|
4
|
-
var version = "2.5.0-dev.
|
|
4
|
+
var version = "2.5.0-dev.2597+7bed9e2b";
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/lib/const.ts
|
|
7
7
|
/**
|
|
@@ -118,6 +118,16 @@ const properties = {
|
|
|
118
118
|
setter: "setActorDispatcher",
|
|
119
119
|
requiresIdentifier: false,
|
|
120
120
|
pluralName: "preferredUsernames"
|
|
121
|
+
},
|
|
122
|
+
url: {
|
|
123
|
+
name: "url",
|
|
124
|
+
path: ["url"],
|
|
125
|
+
setter: "setActorDispatcher",
|
|
126
|
+
requiresIdentifier: false,
|
|
127
|
+
pluralName: "urls",
|
|
128
|
+
reason: "remote fediverse software uses it as the link to the actor's profile page",
|
|
129
|
+
recommendation: "Set `url` (or the plural `urls` initializer) to the actor's human-readable profile URL.",
|
|
130
|
+
requireNonEmptyValue: true
|
|
121
131
|
}
|
|
122
132
|
};
|
|
123
133
|
/**
|
|
@@ -137,6 +147,7 @@ const RULE_IDS = {
|
|
|
137
147
|
actorPublicKeyRequired: "actor-public-key-required",
|
|
138
148
|
actorAssertionMethodRequired: "actor-assertion-method-required",
|
|
139
149
|
actorPreferredUsernameRequired: "actor-preferred-username-required",
|
|
150
|
+
actorProfileUrlRequired: "actor-profile-url-required",
|
|
140
151
|
actorIdMismatch: "actor-id-mismatch",
|
|
141
152
|
actorFollowingPropertyMismatch: "actor-following-property-mismatch",
|
|
142
153
|
actorFollowersPropertyMismatch: "actor-followers-property-mismatch",
|
|
@@ -163,15 +174,17 @@ const RULE_IDS = {
|
|
|
163
174
|
*
|
|
164
175
|
* @param name - The property name (e.g., "id", "inbox", "following")
|
|
165
176
|
*/
|
|
166
|
-
const actorPropertyRequired = ({ setter, path, getter, requiresIdentifier = true }) => {
|
|
177
|
+
const actorPropertyRequired = ({ setter, path, getter, requiresIdentifier = true, reason, recommendation: recommendationOverride }) => {
|
|
167
178
|
const propertyPath = path.join(".");
|
|
168
|
-
|
|
179
|
+
const defaultRecommendation = getter == null ? `Set the \`${propertyPath}\` property directly on the actor object.` : `Use \`${getExpectedCall({
|
|
169
180
|
ctxName: "Context",
|
|
170
181
|
methodName: getter,
|
|
171
182
|
idName: "identifier",
|
|
172
183
|
path: path.join("."),
|
|
173
184
|
requiresIdentifier
|
|
174
|
-
})}\` for the \`${propertyPath}\` property URI
|
|
185
|
+
})}\` for the \`${propertyPath}\` property URI.`;
|
|
186
|
+
const recommendation = recommendationOverride ?? defaultRecommendation;
|
|
187
|
+
return `When \`${setter}\` is configured, the \`${propertyPath}\` property is recommended${reason == null ? "" : ` because ${reason}`}. ${recommendation}`;
|
|
175
188
|
};
|
|
176
189
|
/**
|
|
177
190
|
* Generates error message for *-mismatch rules.
|
|
@@ -249,12 +262,20 @@ const isSetActorDispatcherCall = (node) => allOf(hasMemberExpressionCallee, hasI
|
|
|
249
262
|
const hasMinParams = (min) => (fn) => fn.params.length >= min;
|
|
250
263
|
//#endregion
|
|
251
264
|
//#region src/lib/property-checker.ts
|
|
265
|
+
const getKeyName = (node) => {
|
|
266
|
+
const key = node.key;
|
|
267
|
+
if (key.type === "Identifier" && !node.computed) return key.name;
|
|
268
|
+
if (key.type === "Literal" && typeof key.value === "string") return key.value;
|
|
269
|
+
return null;
|
|
270
|
+
};
|
|
252
271
|
/**
|
|
253
|
-
* Checks if a node has a key with a specific name
|
|
272
|
+
* Checks if a node has a key with a specific name, whether the key is written
|
|
273
|
+
* as an identifier (`url`) or as a string literal (`"url"` or `["url"]`).
|
|
274
|
+
* Computed identifier keys stay dynamic and are not matched.
|
|
254
275
|
*/
|
|
255
|
-
const hasKeyName = (propertyName) => (node) => (
|
|
276
|
+
const hasKeyName = (propertyName) => (node) => getKeyName(node) === propertyName;
|
|
256
277
|
/**
|
|
257
|
-
* Checks if a node is a Property with
|
|
278
|
+
* Checks if a node is a Property with a specific key name.
|
|
258
279
|
*/
|
|
259
280
|
const isPropertyWithName = (propertyName) => (node) => allOf(isNodeType("Property"), hasKeyName(propertyName))(node);
|
|
260
281
|
/**
|
|
@@ -300,10 +321,26 @@ const unwrapTypeScriptExpression = (node) => {
|
|
|
300
321
|
}
|
|
301
322
|
};
|
|
302
323
|
const isNullLiteral = (node) => node.type === "Literal" && node.value === null;
|
|
324
|
+
const isUndefinedExpression = (node) => node.type === "Identifier" && node.name === "undefined" || node.type === "UnaryExpression" && node.operator === "void";
|
|
303
325
|
const isTombstoneExpression = (node) => node.type === "NewExpression" && node.callee.type === "Identifier" && node.callee.name === "Tombstone";
|
|
326
|
+
/**
|
|
327
|
+
* Checks whether a property initializer visibly carries a value.
|
|
328
|
+
*
|
|
329
|
+
* A `null` literal, `undefined`, `void`, or an empty array literal means
|
|
330
|
+
* there is no value for rules that require a profile URL, even though the
|
|
331
|
+
* property key is present. TypeScript wrappers such as `as`, `satisfies`,
|
|
332
|
+
* and non-null assertions are unwrapped first.
|
|
333
|
+
*/
|
|
334
|
+
const isNonEmptyInitializer = (node) => {
|
|
335
|
+
const value = node.type === "AssignmentPattern" ? node.right : node;
|
|
336
|
+
const expression = unwrapTypeScriptExpression(value);
|
|
337
|
+
if (isNullLiteral(expression) || isUndefinedExpression(expression)) return false;
|
|
338
|
+
if (expression.type === "ArrayExpression") return expression.elements.length > 0;
|
|
339
|
+
return true;
|
|
340
|
+
};
|
|
304
341
|
const checkBranchWith = (propertyChecker) => (branch) => {
|
|
305
342
|
const expression = unwrapTypeScriptExpression(branch);
|
|
306
|
-
if (isNullLiteral(expression) || isTombstoneExpression(expression)) return true;
|
|
343
|
+
if (isNullLiteral(expression) || isUndefinedExpression(expression) || isTombstoneExpression(expression)) return true;
|
|
307
344
|
return (0, _fxts_core.pipe)(expression, cases(isNodeType("ConditionalExpression"), checkConditionalExpression(propertyChecker), (0, _fxts_core.pipeLazy)(extractObjectExpression, cases(_fxts_core.isObject, checkObjectExpression(propertyChecker), (0, _fxts_core.always)(false)))));
|
|
308
345
|
};
|
|
309
346
|
/**
|
|
@@ -319,7 +356,10 @@ const extractObjectExpression = cases(isNodeType("NewExpression"), extractFirstO
|
|
|
319
356
|
* @param propertyChecker The predicate function to check properties
|
|
320
357
|
* @returns A function that checks the ReturnStatement
|
|
321
358
|
*/
|
|
322
|
-
const checkReturnStatement = (propertyChecker) => (node) =>
|
|
359
|
+
const checkReturnStatement = (propertyChecker) => (node) => {
|
|
360
|
+
if (node.argument == null) return true;
|
|
361
|
+
return checkBranchWith(propertyChecker)(node.argument);
|
|
362
|
+
};
|
|
323
363
|
/**
|
|
324
364
|
* Creates a function that recursively checks for a property in an AST node.
|
|
325
365
|
* @param propertyChecker The predicate function to check properties
|
|
@@ -435,8 +475,9 @@ function createRequiredRule(config, description) {
|
|
|
435
475
|
const federationTracker = trackFederationVariables();
|
|
436
476
|
const dispatcherTracker = createDispatcherTracker(config.setter, federationTracker);
|
|
437
477
|
const actorDispatchers = [];
|
|
438
|
-
const
|
|
439
|
-
const
|
|
478
|
+
const valueChecker = config.requireNonEmptyValue ? isNonEmptyInitializer : Boolean;
|
|
479
|
+
const propertyChecker = createPropertyChecker(valueChecker)(config.path);
|
|
480
|
+
const pluralPropertyChecker = config.pluralName == null ? null : createPropertyChecker(valueChecker)([...config.path.slice(0, -1), config.pluralName]);
|
|
440
481
|
const propertySearcher = createPropertySearcher(pluralPropertyChecker == null ? propertyChecker : (node) => propertyChecker(node) || pluralPropertyChecker(node));
|
|
441
482
|
return {
|
|
442
483
|
VariableDeclarator: federationTracker.VariableDeclarator,
|
|
@@ -481,7 +522,7 @@ function createRequiredRuleEslint(config) {
|
|
|
481
522
|
};
|
|
482
523
|
}
|
|
483
524
|
createRequiredRuleDeno(properties.assertionMethod);
|
|
484
|
-
const eslint$
|
|
525
|
+
const eslint$30 = createRequiredRuleEslint(properties.assertionMethod);
|
|
485
526
|
//#endregion
|
|
486
527
|
//#region src/lib/mismatch.ts
|
|
487
528
|
const isIdentifierWithName = (name) => (node) => allOf(isNodeType("Identifier"), isNodeName(name))(node);
|
|
@@ -560,39 +601,41 @@ const createMismatchRuleEslint = (config) => ({
|
|
|
560
601
|
}))
|
|
561
602
|
});
|
|
562
603
|
createMismatchRuleDeno(properties.featured);
|
|
563
|
-
const eslint$
|
|
604
|
+
const eslint$29 = createMismatchRuleEslint(properties.featured);
|
|
564
605
|
createRequiredRuleDeno(properties.featured);
|
|
565
|
-
const eslint$
|
|
606
|
+
const eslint$28 = createRequiredRuleEslint(properties.featured);
|
|
566
607
|
createMismatchRuleDeno(properties.featuredTags);
|
|
567
|
-
const eslint$
|
|
608
|
+
const eslint$27 = createMismatchRuleEslint(properties.featuredTags);
|
|
568
609
|
createRequiredRuleDeno(properties.featuredTags);
|
|
569
|
-
const eslint$
|
|
610
|
+
const eslint$26 = createRequiredRuleEslint(properties.featuredTags);
|
|
570
611
|
createMismatchRuleDeno(properties.followers);
|
|
571
|
-
const eslint$
|
|
612
|
+
const eslint$25 = createMismatchRuleEslint(properties.followers);
|
|
572
613
|
createRequiredRuleDeno(properties.followers);
|
|
573
|
-
const eslint$
|
|
614
|
+
const eslint$24 = createRequiredRuleEslint(properties.followers);
|
|
574
615
|
createMismatchRuleDeno(properties.following);
|
|
575
|
-
const eslint$
|
|
616
|
+
const eslint$23 = createMismatchRuleEslint(properties.following);
|
|
576
617
|
createRequiredRuleDeno(properties.following);
|
|
577
|
-
const eslint$
|
|
618
|
+
const eslint$22 = createRequiredRuleEslint(properties.following);
|
|
578
619
|
createMismatchRuleDeno(properties.id);
|
|
579
|
-
const eslint$
|
|
620
|
+
const eslint$21 = createMismatchRuleEslint(properties.id);
|
|
580
621
|
createRequiredRuleDeno(properties.id);
|
|
581
|
-
const eslint$
|
|
622
|
+
const eslint$20 = createRequiredRuleEslint(properties.id);
|
|
582
623
|
createMismatchRuleDeno(properties.inbox);
|
|
583
|
-
const eslint$
|
|
624
|
+
const eslint$19 = createMismatchRuleEslint(properties.inbox);
|
|
584
625
|
createRequiredRuleDeno(properties.inbox);
|
|
585
|
-
const eslint$
|
|
626
|
+
const eslint$18 = createRequiredRuleEslint(properties.inbox);
|
|
586
627
|
createMismatchRuleDeno(properties.liked);
|
|
587
|
-
const eslint$
|
|
628
|
+
const eslint$17 = createMismatchRuleEslint(properties.liked);
|
|
588
629
|
createRequiredRuleDeno(properties.liked);
|
|
589
|
-
const eslint$
|
|
630
|
+
const eslint$16 = createRequiredRuleEslint(properties.liked);
|
|
590
631
|
createMismatchRuleDeno(properties.outbox);
|
|
591
|
-
const eslint$
|
|
632
|
+
const eslint$15 = createMismatchRuleEslint(properties.outbox);
|
|
592
633
|
createRequiredRuleDeno(properties.outbox);
|
|
593
|
-
const eslint$
|
|
634
|
+
const eslint$14 = createRequiredRuleEslint(properties.outbox);
|
|
594
635
|
createRequiredRuleDeno(properties.preferredUsername);
|
|
595
|
-
const eslint$
|
|
636
|
+
const eslint$13 = createRequiredRuleEslint(properties.preferredUsername);
|
|
637
|
+
createRequiredRuleDeno(properties.url);
|
|
638
|
+
const eslint$12 = createRequiredRuleEslint(properties.url);
|
|
596
639
|
createRequiredRuleDeno(properties.publicKey);
|
|
597
640
|
const eslint$11 = createRequiredRuleEslint(properties.publicKey);
|
|
598
641
|
createMismatchRuleDeno(properties.sharedInbox);
|
|
@@ -2775,6 +2818,12 @@ Object.defineProperty(exports, "eslint$3", {
|
|
|
2775
2818
|
return eslint$3;
|
|
2776
2819
|
}
|
|
2777
2820
|
});
|
|
2821
|
+
Object.defineProperty(exports, "eslint$30", {
|
|
2822
|
+
enumerable: true,
|
|
2823
|
+
get: function() {
|
|
2824
|
+
return eslint$30;
|
|
2825
|
+
}
|
|
2826
|
+
});
|
|
2778
2827
|
Object.defineProperty(exports, "eslint$4", {
|
|
2779
2828
|
enumerable: true,
|
|
2780
2829
|
get: function() {
|
package/dist/oxlint.cjs
CHANGED
|
@@ -1,29 +1,30 @@
|
|
|
1
|
-
const require_outbox_listener_delivery_required = require("./outbox-listener-delivery-required-
|
|
1
|
+
const require_outbox_listener_delivery_required = require("./outbox-listener-delivery-required-DgYT5GSv.cjs");
|
|
2
2
|
//#region src/oxlint.ts
|
|
3
3
|
const rules = {
|
|
4
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorIdMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
5
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorIdRequired]: require_outbox_listener_delivery_required.eslint$
|
|
6
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
7
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
8
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
9
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
10
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
11
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
12
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
13
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
14
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
15
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
16
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
17
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
18
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$
|
|
19
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$
|
|
4
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorIdMismatch]: require_outbox_listener_delivery_required.eslint$21,
|
|
5
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorIdRequired]: require_outbox_listener_delivery_required.eslint$20,
|
|
6
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyRequired]: require_outbox_listener_delivery_required.eslint$22,
|
|
7
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowingPropertyMismatch]: require_outbox_listener_delivery_required.eslint$23,
|
|
8
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyRequired]: require_outbox_listener_delivery_required.eslint$24,
|
|
9
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFollowersPropertyMismatch]: require_outbox_listener_delivery_required.eslint$25,
|
|
10
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$14,
|
|
11
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorOutboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$15,
|
|
12
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyRequired]: require_outbox_listener_delivery_required.eslint$16,
|
|
13
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorLikedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$17,
|
|
14
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyRequired]: require_outbox_listener_delivery_required.eslint$28,
|
|
15
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedPropertyMismatch]: require_outbox_listener_delivery_required.eslint$29,
|
|
16
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyRequired]: require_outbox_listener_delivery_required.eslint$26,
|
|
17
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorFeaturedTagsPropertyMismatch]: require_outbox_listener_delivery_required.eslint$27,
|
|
18
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$18,
|
|
19
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$19,
|
|
20
20
|
[require_outbox_listener_delivery_required.RULE_IDS.actorSharedInboxPropertyRequired]: require_outbox_listener_delivery_required.eslint$9,
|
|
21
21
|
[require_outbox_listener_delivery_required.RULE_IDS.actorSharedInboxPropertyMismatch]: require_outbox_listener_delivery_required.eslint$10,
|
|
22
22
|
[require_outbox_listener_delivery_required.RULE_IDS.actorUploadMediaPropertyRequired]: require_outbox_listener_delivery_required.eslint$7,
|
|
23
23
|
[require_outbox_listener_delivery_required.RULE_IDS.actorUploadMediaPropertyMismatch]: require_outbox_listener_delivery_required.eslint$8,
|
|
24
24
|
[require_outbox_listener_delivery_required.RULE_IDS.actorPublicKeyRequired]: require_outbox_listener_delivery_required.eslint$11,
|
|
25
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorAssertionMethodRequired]: require_outbox_listener_delivery_required.eslint$
|
|
26
|
-
[require_outbox_listener_delivery_required.RULE_IDS.actorPreferredUsernameRequired]: require_outbox_listener_delivery_required.eslint$
|
|
25
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorAssertionMethodRequired]: require_outbox_listener_delivery_required.eslint$30,
|
|
26
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorPreferredUsernameRequired]: require_outbox_listener_delivery_required.eslint$13,
|
|
27
|
+
[require_outbox_listener_delivery_required.RULE_IDS.actorProfileUrlRequired]: require_outbox_listener_delivery_required.eslint$12,
|
|
27
28
|
[require_outbox_listener_delivery_required.RULE_IDS.collectionFilteringNotImplemented]: require_outbox_listener_delivery_required.eslint$6,
|
|
28
29
|
[require_outbox_listener_delivery_required.RULE_IDS.outboxListenerDeliveryRequired]: require_outbox_listener_delivery_required.eslint,
|
|
29
30
|
[require_outbox_listener_delivery_required.RULE_IDS.outboxListenerDeliveryNotAwaited]: require_outbox_listener_delivery_required.eslint$1,
|
package/dist/oxlint.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as eslint$
|
|
1
|
+
import { A as eslint$11, C as eslint$2, D as eslint$12, E as eslint$5, M as RULE_IDS, N as name, O as eslint$13, P as version, S as eslint, T as eslint$4, _ as eslint$8, a as eslint$29, b as eslint$15, c as eslint$18, d as eslint$17, f as eslint$20, g as eslint$7, h as eslint$6, i as eslint$28, j as eslint$21, k as eslint$10, l as eslint$19, m as eslint$22, n as eslint$26, o as eslint$30, p as eslint$23, r as eslint$27, s as eslint$24, t as eslint$25, u as eslint$16, v as eslint$9, w as eslint$3, x as eslint$1, y as eslint$14 } from "./outbox-listener-delivery-required-DM_GhAVU.js";
|
|
2
2
|
//#region src/oxlint.ts
|
|
3
3
|
const rules = {
|
|
4
4
|
[RULE_IDS.actorIdMismatch]: eslint,
|
|
@@ -24,13 +24,14 @@ const rules = {
|
|
|
24
24
|
[RULE_IDS.actorPublicKeyRequired]: eslint$20,
|
|
25
25
|
[RULE_IDS.actorAssertionMethodRequired]: eslint$21,
|
|
26
26
|
[RULE_IDS.actorPreferredUsernameRequired]: eslint$22,
|
|
27
|
-
[RULE_IDS.
|
|
28
|
-
[RULE_IDS.
|
|
29
|
-
[RULE_IDS.
|
|
30
|
-
[RULE_IDS.
|
|
31
|
-
[RULE_IDS.
|
|
32
|
-
[RULE_IDS.
|
|
33
|
-
[RULE_IDS.
|
|
27
|
+
[RULE_IDS.actorProfileUrlRequired]: eslint$23,
|
|
28
|
+
[RULE_IDS.collectionFilteringNotImplemented]: eslint$24,
|
|
29
|
+
[RULE_IDS.outboxListenerDeliveryRequired]: eslint$25,
|
|
30
|
+
[RULE_IDS.outboxListenerDeliveryNotAwaited]: eslint$26,
|
|
31
|
+
[RULE_IDS.mediaUploaderObjectUriRequired]: eslint$27,
|
|
32
|
+
[RULE_IDS.mediaUploaderAuthorizationRequired]: eslint$28,
|
|
33
|
+
[RULE_IDS.denoKvStoreDeprecated]: eslint$29,
|
|
34
|
+
[RULE_IDS.denoKvMessageQueueDeprecated]: eslint$30
|
|
34
35
|
};
|
|
35
36
|
const plugin = {
|
|
36
37
|
meta: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fedify/lint",
|
|
3
|
-
"version": "2.5.0-dev.
|
|
3
|
+
"version": "2.5.0-dev.2597+7bed9e2b",
|
|
4
4
|
"description": "Fedify linting rules and plugins",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Fedify",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
],
|
|
52
52
|
"peerDependencies": {
|
|
53
53
|
"eslint": ">=9.0.0",
|
|
54
|
-
"@fedify/fedify": "^2.5.0-dev.
|
|
54
|
+
"@fedify/fedify": "^2.5.0-dev.2597+7bed9e2b"
|
|
55
55
|
},
|
|
56
56
|
"peerDependenciesMeta": {
|
|
57
57
|
"eslint": {
|
|
@@ -69,9 +69,9 @@
|
|
|
69
69
|
"eslint": "^9.0.0",
|
|
70
70
|
"oxlint": "^1.66.0",
|
|
71
71
|
"tsdown": "^0.22.0",
|
|
72
|
-
"typescript": "^6.0.
|
|
72
|
+
"typescript": "^6.0.3",
|
|
73
73
|
"@fedify/fixture": "2.0.0",
|
|
74
|
-
"@fedify/vocab": "2.5.0-dev.
|
|
74
|
+
"@fedify/vocab": "2.5.0-dev.2597+7bed9e2b"
|
|
75
75
|
},
|
|
76
76
|
"scripts": {
|
|
77
77
|
"build:self": "tsdown",
|