@deslop/coding-standards 0.1.1082 → 0.1.1083

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/install.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { A as filter, An as isCause, Ar as isString$1, At as getOrUndefined$1, Bn as assignProperty, Br as identity, C as contains, Cn as contE, Cr as isNullish, D as empty$3, Dn as exitFail, Dt as fromNullishOr, En as exitDie, Er as isObjectKeyword, Fn as isFailReason$1, Fr as constTrue, Ft as match$5, G as isReadonlyArrayNonEmpty, Gn as NodeInspectSymbol, Gr as Prototype$1, Gt as isGreaterThan$1, Hn as getStackTraceLimit, Hr as memoizeIdempotent, In as isInterruptReason, Ir as constUndefined, It as none, K as join$1, Kn as toStringUnknown, Kr as pipeArguments, Ln as makePrimitive$1, Lr as constVoid, Lt as orElse, M as findFirst, Mn as isDone$2, Mr as isUndefined, Mt as isSome, N as findFirstIndex, Nn as isEffect$1, Nr as isUnknown, On as exitFailCause, Ot as fromUndefinedOr, P as findLast, Pn as isExit, Pr as constFalse, Pt as map$10, Q as of, Qn as currentFiberTypeId, R as fromIterable$1, Rn as makePrimitiveProto, Rr as constant, Rt as some, Sn as contAll, Sr as isNotUndefined, St as exists, T as dedupe, Tn as evaluate, Tr as isObject, Tt as flatMap$4, U as isArrayNonEmpty, Un as setStackTraceLimit, Ur as pipe, Ut as Number$6, Vn as internalCall, Vr as memoize, W as isCanonicalArrayIndex, Wn as BaseProto, Wr as Class, Wt as String$6, X as match$6, Xn as formatPath, Xt as mapInput, Y as map$8, Yn as formatJson, Zn as formatPropertyKey, _ as trimEnd, _n as causeEmpty, _r as isError, _t as match$4, a as takeN, an as Fail, b as taggedEnum, bn as constEmptyAnnotations, br as isNotNull, c as make$30, cn as ReasonBase, cr as number$1, dn as Yield, dr as structure, en as CauseImpl, et as reduce, fn as args, gn as causeDie, gr as isBoolean$1, h as startsWith, hn as causeCombine, i as take$1, in as ExitTypeId, ir as symbol, jn as isDieReason$1, jr as isTagged, jt as isNone, kn as exitSucceed, kt as getOrElse, ln as StackTraceKey, mn as causeAnnotate, mr as hasProperty, mt as isFailure$1, n as clear, nn as Done$1, on as InterruptorStackTrace, or as combine$1, pn as causeAddInterrupts, pr as symbol$1, qn as format$1, r as make$29, rn as Error$3, rr as equals$1, sn as PipeInspectableProto, sr as hash, t as append$1, tn as Die, tt as some$1, un as TaggedError$2, ur as string$1, ut as fail$5, v as Error$2, vn as causeFail, vr as isFunction, vt as succeed$6, wn as done$1, wr as isNumber, x as append, xn as contA, xr as isNotNullish, y as TaggedError$1, yn as causeFromReasons, yr as isIterable, yt as normalize$1, zn as withFiber$1, zr as dual } from "./MutableList-BCF17jPH.mjs";
2
+ import { An as evaluate, Ar as isObject, At as flatMap$4, Bn as isFailReason$1, Br as constTrue, Bt as match$4, C as TaggedError$1, Cn as causeFail, Cr as isFunction, Ct as succeed$6, D as contains, Dn as contAll, Dr as isNotUndefined, Dt as exists, En as contA, Er as isNotNullish, F as filter, Fn as isCause, Fr as isString$1, Ft as getOrUndefined$1, Gn as assignProperty, Gr as identity, Hn as makePrimitive$1, Hr as constVoid, Ht as orElse, In as isDieReason$1, Ir as isTagged, It as isNone, J as isArrayNonEmpty, Jn as setStackTraceLimit, Jr as pipe, Jt as Number$5, Kn as internalCall, Kr as memoize, L as findFirst, Ln as isDone$2, Lr as isUndefined, Lt as isSome, M as empty$3, Mn as exitFail, Mt as fromNullishOr, Nn as exitFailCause, Nt as fromUndefinedOr, On as contE, Or as isNullish, Pn as exitSucceed, Pt as getOrElse, Qn as format$1, R as findFirstIndex, Rn as isEffect$1, Rr as isUnknown, S as Error$2, Sn as causeEmpty, Sr as isError, St as match$3, T as append, Tn as constEmptyAnnotations, Tr as isNotNull, U as fromIterable$1, Un as makePrimitiveProto, Ur as constant, Ut as some, Vn as isInterruptReason, Vr as constUndefined, Vt as none, Wn as withFiber$1, Wr as dual, X as isReadonlyArrayNonEmpty, Xn as NodeInspectSymbol, Xr as Prototype$1, Xt as isGreaterThan$1, Y as isCanonicalArrayIndex, Yn as BaseProto, Yr as Class, Yt as String$6, Z as join$1, Zn as toStringUnknown, Zr as pipeArguments, _ as startsWith, _n as args, a as takeN, an as CauseImpl, at as reduce, bn as causeCombine, c as make$30, cn as Error$3, cr as equals$1, dn as InterruptorStackTrace, dr as combine$1, er as formatJson, et as map$8, fn as PipeInspectableProto, fr as hash, gn as Yield, gr as structure, hn as TaggedError$2, hr as string$1, ht as fail$5, i as take$1, jn as exitDie, jr as isObjectKeyword, k as dedupe, kn as done$1, kr as isNumber, ln as ExitTypeId, lr as symbol, mn as StackTraceKey, n as clear, nr as formatPropertyKey, on as Die, ot as some$1, pn as ReasonBase, pr as number$1, qn as getStackTraceLimit, qr as memoizeIdempotent, r as make$29, rr as currentFiberTypeId, rt as of, sn as Done$1, t as append$1, tn as mapInput, tr as formatPath, tt as match$5, u as match$6, un as Fail, vn as causeAddInterrupts, vr as symbol$1, w as taggedEnum, wn as causeFromReasons, wr as isIterable, wt as normalize$1, x as round, xn as causeDie, xr as isBoolean$1, y as trimEnd, yn as causeAnnotate, yr as hasProperty, yt as isFailure$1, z as findLast, zn as isExit, zr as constFalse, zt as map$10 } from "./MutableList-Cpkiw3Cl.mjs";
3
3
  import * as OS from "node:os";
4
4
  import * as NodeChildProcess from "node:child_process";
5
5
  import { PassThrough } from "node:stream";
@@ -1080,7 +1080,7 @@ const weeks = (weeks) => make$25(weeks * 6048e5);
1080
1080
  * @category getters
1081
1081
  * @since 2.0.0
1082
1082
  */
1083
- const toMillis = (self) => match$3(fromInputUnsafe$1(self), {
1083
+ const toMillis = (self) => match$2(fromInputUnsafe$1(self), {
1084
1084
  onMillis: identity,
1085
1085
  onNanos: (nanos) => Number(nanos) / 1e6,
1086
1086
  onInfinity: () => Infinity,
@@ -1152,7 +1152,7 @@ const toNanosUnsafe = (input) => {
1152
1152
  * @category pattern matching
1153
1153
  * @since 2.0.0
1154
1154
  */
1155
- const match$3 = /*#__PURE__*/ dual(2, (self, options) => {
1155
+ const match$2 = /*#__PURE__*/ dual(2, (self, options) => {
1156
1156
  switch (self.value._tag) {
1157
1157
  case "Millis": return options.onMillis(self.value.millis);
1158
1158
  case "Nanos": return options.onNanos(self.value.nanos);
@@ -2019,7 +2019,7 @@ const suspend$3 = /*#__PURE__*/ makePrimitive$1({
2019
2019
  }
2020
2020
  });
2021
2021
  /** @internal */
2022
- const fromResult$1 = /*#__PURE__*/ match$4({
2022
+ const fromResult$1 = /*#__PURE__*/ match$3({
2023
2023
  onFailure: fail$4,
2024
2024
  onSuccess: succeed$5
2025
2025
  });
@@ -2493,7 +2493,7 @@ const matchEffect$2 = /*#__PURE__*/ dual(2, (self, options) => matchCauseEffect$
2493
2493
  onSuccess: options.onSuccess
2494
2494
  }));
2495
2495
  /** @internal */
2496
- const match$2 = /*#__PURE__*/ dual(2, (self, options) => new MatchImpl(self, options));
2496
+ const match$1 = /*#__PURE__*/ dual(2, (self, options) => new MatchImpl(self, options));
2497
2497
  /** @internal */
2498
2498
  const matchEager = /*#__PURE__*/ dual(2, (self, options) => {
2499
2499
  if (effectIsExit(self)) {
@@ -2502,7 +2502,7 @@ const matchEager = /*#__PURE__*/ dual(2, (self, options) => {
2502
2502
  if (isFailure$1(error)) return self;
2503
2503
  return exitSucceed(options.onFailure(error.success));
2504
2504
  }
2505
- return match$2(self, options);
2505
+ return match$1(self, options);
2506
2506
  });
2507
2507
  /** @internal */
2508
2508
  const exit$1 = (self) => effectIsExit(self) ? exitSucceed(self) : exitPrimitive(self);
@@ -3229,7 +3229,7 @@ const logLevelToOrder = (level) => {
3229
3229
  }
3230
3230
  };
3231
3231
  /** @internal */
3232
- const isLogLevelGreaterThan = /*#__PURE__*/ isGreaterThan$1(/* @__PURE__ */ mapInput(Number$6, logLevelToOrder));
3232
+ const isLogLevelGreaterThan = /*#__PURE__*/ isGreaterThan$1(/* @__PURE__ */ mapInput(Number$5, logLevelToOrder));
3233
3233
  /** @internal */
3234
3234
  const CurrentLoggers = /*#__PURE__*/ Reference("effect/Logger/CurrentLoggers", { defaultValue: () => /* @__PURE__ */ new Set([defaultLogger, tracerLogger]) });
3235
3235
  /** @internal */
@@ -4973,31 +4973,6 @@ const ProtoTimeZone = {
4973
4973
  ({ ...ProtoTimeZone });
4974
4974
  /** @internal */
4975
4975
  const toDateUtc$1 = (self) => new Date(self.epochMilliseconds);
4976
- globalThis.Number;
4977
- /**
4978
- * Returns the number rounded with the given precision.
4979
- *
4980
- * **When to use**
4981
- *
4982
- * Use to round a number to a fixed number of decimal places.
4983
- *
4984
- * **Example** (Rounding with precision)
4985
- *
4986
- * ```ts import.meta.vitest
4987
- * import { Number } from "effect"
4988
- *
4989
- * Number.round(1.1234, 2) // => 1.12
4990
- * Number.round(1.567, 2) // => 1.57
4991
- * ```
4992
- *
4993
- * @stability stable
4994
- * @category math
4995
- * @since 3.8.0
4996
- */
4997
- const round = /*#__PURE__*/ dual(2, (self, precision) => {
4998
- const factor = Math.pow(10, precision);
4999
- return Math.round(self * factor) / factor;
5000
- });
5001
4976
  //#endregion
5002
4977
  //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/internal/random.js
5003
4978
  /** @internal */
@@ -6762,7 +6737,7 @@ const raceFirst = raceFirst$1;
6762
6737
  * @category pattern matching
6763
6738
  * @since 2.0.0
6764
6739
  */
6765
- const match$1 = match$2;
6740
+ const match = match$1;
6766
6741
  /**
6767
6742
  * Handles failures with access to the cause and allows performing side effects.
6768
6743
  *
@@ -10188,7 +10163,7 @@ const number = /*#__PURE__*/ new Number$3();
10188
10163
  * @category constructors
10189
10164
  * @since 4.0.0
10190
10165
  */
10191
- const Boolean$5 = class extends ASTNodeImpl {
10166
+ const Boolean$4 = class extends ASTNodeImpl {
10192
10167
  _tag = "Boolean";
10193
10168
  /** @internal */
10194
10169
  getParser() {
@@ -10214,7 +10189,7 @@ const Boolean$5 = class extends ASTNodeImpl {
10214
10189
  * @category constructors
10215
10190
  * @since 4.0.0
10216
10191
  */
10217
- const boolean = /*#__PURE__*/ new Boolean$5();
10192
+ const boolean = /*#__PURE__*/ new Boolean$4();
10218
10193
  /**
10219
10194
  * Constructs a {@link Arrays}.
10220
10195
  *
@@ -12541,7 +12516,7 @@ const String$3 = /*#__PURE__*/ make$16(string);
12541
12516
  * @category schemas
12542
12517
  * @since 4.0.0
12543
12518
  */
12544
- const Boolean$4 = /*#__PURE__*/ make$16(boolean);
12519
+ const Boolean$3 = /*#__PURE__*/ make$16(boolean);
12545
12520
  function makeStruct(ast, fields) {
12546
12521
  return make$16(ast, {
12547
12522
  fields,
@@ -12697,7 +12672,7 @@ const FalseLiterals = /*#__PURE__*/ Literals([
12697
12672
  "n"
12698
12673
  ]);
12699
12674
  /** @internal */
12700
- const BooleanLiterals = /*#__PURE__*/ Literals([...TrueLiterals.literals, ...FalseLiterals.literals]).pipe(/*#__PURE__*/ decodeTo(Boolean$4, /*#__PURE__*/ transform$1({
12675
+ const BooleanLiterals = /*#__PURE__*/ Literals([...TrueLiterals.literals, ...FalseLiterals.literals]).pipe(/*#__PURE__*/ decodeTo(Boolean$3, /*#__PURE__*/ transform$1({
12701
12676
  decode: (value) => value === "true" || value === "yes" || value === "on" || value === "1" || value === "y",
12702
12677
  encode: (value) => value ? "true" : "false"
12703
12678
  })));
@@ -13095,30 +13070,6 @@ const Json = /*#__PURE__*/ make$16(/*#__PURE__*/ annotate$1(Json$1, { toCode: ()
13095
13070
  runtime: "Schema.Json",
13096
13071
  Type: "Schema.Json"
13097
13072
  }) }));
13098
- globalThis.Boolean;
13099
- /**
13100
- * Chooses between two lazy branches based on a boolean value.
13101
- *
13102
- * **When to use**
13103
- *
13104
- * Use to choose between two lazy branches based on a boolean value.
13105
- *
13106
- * **Example** (Pattern matching on booleans)
13107
- *
13108
- * ```ts import.meta.vitest
13109
- * import { Boolean } from "effect"
13110
- *
13111
- * Boolean.match(true, {
13112
- * onFalse: () => "It's false!",
13113
- * onTrue: () => "It's true!"
13114
- * }) // => "It's true!"
13115
- * ```
13116
- *
13117
- * @stability stable
13118
- * @category pattern matching
13119
- * @since 2.0.0
13120
- */
13121
- const match = /*#__PURE__*/ dual(2, (value, options) => value ? options.onTrue() : options.onFalse());
13122
13073
  //#endregion
13123
13074
  //#region ../../node_modules/.pnpm/effect@4.0.5/node_modules/effect/dist/Brand.js
13124
13075
  /**
@@ -15819,7 +15770,7 @@ const make$12 = (impl) => FileSystem.of({
15819
15770
  return fromPull(succeed$2(flatMap$1(suspend$2(() => {
15820
15771
  if (bytesToRead !== void 0 && bytesToRead <= totalBytesRead) return done();
15821
15772
  return bytesToRead !== void 0 && bytesToRead - totalBytesRead < chunkSize ? file.readAlloc(Number(bytesToRead - totalBytesRead)) : readChunk;
15822
- }), match$5({
15773
+ }), match$4({
15823
15774
  onNone: () => done(),
15824
15775
  onSome: (buf) => {
15825
15776
  totalBytesRead += BigInt(buf.length);
@@ -19133,7 +19084,7 @@ const layer$2 = /*#__PURE__*/ effect(Terminal, /*#__PURE__*/ (/* @__PURE__ */ fn
19133
19084
  }
19134
19085
  return queue;
19135
19086
  });
19136
- const readLine = suspend$2(() => poll(lines).pipe(flatMap$1(match$5({
19087
+ const readLine = suspend$2(() => poll(lines).pipe(flatMap$1(match$4({
19137
19088
  onNone: () => scoped(andThen(get(rlRef), take(lines))),
19138
19089
  onSome: succeed$2
19139
19090
  })), mapError(() => new QuitError({}))));
@@ -20637,7 +20588,7 @@ const handleDateClear = (options) => {
20637
20588
  const resetCurrentLine = eraseLine + cursorLeft;
20638
20589
  const parts = reduce(state.dateParts, "", (doc, part) => doc + part.toString());
20639
20590
  const promptText = renderPrompt(parts, options.message, figures.prefix, figures.pointerSmall, figures, { plain: true });
20640
- const errorText = isSome(state.error) ? match$6(state.error.value.split(NEWLINE_REGEXP), {
20591
+ const errorText = isSome(state.error) ? match$5(state.error.value.split(NEWLINE_REGEXP), {
20641
20592
  onEmpty: () => "",
20642
20593
  onNonEmpty: (errorLines) => separateSymbol(figures.pointerSmall, errorLines.join("\n"))
20643
20594
  }) : "";
@@ -20715,7 +20666,7 @@ const processDateCursorRight = (state) => {
20715
20666
  };
20716
20667
  const processDateNext = (state) => {
20717
20668
  const next = state.dateParts[state.cursor].nextPart();
20718
- const cursor = match$5(next, {
20669
+ const cursor = match$4(next, {
20719
20670
  onNone: () => state.dateParts.findIndex((part) => !part.isToken()),
20720
20671
  onSome: (next) => state.dateParts.indexOf(next)
20721
20672
  });
@@ -20804,7 +20755,7 @@ const handleDateProcess = (options) => {
20804
20755
  case "down": return succeed$2(processDown(state));
20805
20756
  case "tab": return succeed$2(processDateNext(state));
20806
20757
  case "enter":
20807
- case "return": return match$1(options.validate(state.value), {
20758
+ case "return": return match(options.validate(state.value), {
20808
20759
  onFailure: (error) => Action$1.NextFrame({ state: {
20809
20760
  ...state,
20810
20761
  error: some(error)
@@ -21058,7 +21009,7 @@ const renderPrompt = (confirm, message, leadingSymbol, trailingSymbol, theme, op
21058
21009
  else if (trailingSymbol.length > 0) output += " ";
21059
21010
  return output;
21060
21011
  };
21061
- return match$6(message.split(NEWLINE_REGEXP), {
21012
+ return match$5(message.split(NEWLINE_REGEXP), {
21062
21013
  onEmpty: () => renderLine(""),
21063
21014
  onNonEmpty: (promptLines) => {
21064
21015
  const lines = options?.plain === true ? promptLines : map$8(promptLines, (line) => annotate(theme.colors, line, bold));
@@ -21090,7 +21041,7 @@ const renderNumberInput = (state, submitted, theme, renderOptions) => {
21090
21041
  return annotate(theme.colors, value, annotation);
21091
21042
  };
21092
21043
  const renderNumberError = (state, pointer, theme, renderOptions) => {
21093
- if (isSome(state.error)) return match$6(state.error.value.split(NEWLINE_REGEXP), {
21044
+ if (isSome(state.error)) return match$5(state.error.value.split(NEWLINE_REGEXP), {
21094
21045
  onEmpty: () => "",
21095
21046
  onNonEmpty: (errorLines) => {
21096
21047
  if (renderOptions?.plain === true) return separateSymbol(pointer, errorLines.join("\n"));
@@ -21195,7 +21146,7 @@ const handleProcessInteger = (options) => {
21195
21146
  ...state,
21196
21147
  error: some("Must provide an integer value")
21197
21148
  } }));
21198
- else return match$1(options.validate(parsed), {
21149
+ else return match(options.validate(parsed), {
21199
21150
  onFailure: (error) => Action$1.NextFrame({ state: {
21200
21151
  ...state,
21201
21152
  error: some(error)
@@ -21240,7 +21191,7 @@ const handleProcessFloat = (options) => {
21240
21191
  ...state,
21241
21192
  error: some("Must provide a floating point value")
21242
21193
  } }));
21243
- else return flatMap$1(sync(() => round(parsed, options.precision)), (rounded) => match$1(options.validate(rounded), {
21194
+ else return flatMap$1(sync(() => round(parsed, options.precision)), (rounded) => match(options.validate(rounded), {
21244
21195
  onFailure: (error) => Action$1.NextFrame({ state: {
21245
21196
  ...state,
21246
21197
  error: some(error)
@@ -21367,7 +21318,7 @@ const renderTextInput = (nextState, options, theme, submitted, renderOptions) =>
21367
21318
  }
21368
21319
  };
21369
21320
  const renderTextError = (nextState, pointer, theme, renderOptions) => {
21370
- if (isSome(nextState.error)) return match$6(nextState.error.value.split(NEWLINE_REGEXP), {
21321
+ if (isSome(nextState.error)) return match$5(nextState.error.value.split(NEWLINE_REGEXP), {
21371
21322
  onEmpty: () => "",
21372
21323
  onNonEmpty: (errorLines) => {
21373
21324
  if (renderOptions?.plain === true) return separateSymbol(pointer, errorLines.join("\n"));
@@ -21491,7 +21442,7 @@ const handleTextProcess = (options) => {
21491
21442
  case "enter":
21492
21443
  case "return": {
21493
21444
  const value = state.value;
21494
- return match$1(options.validate(value), {
21445
+ return match(options.validate(value), {
21495
21446
  onFailure: (error) => Action$1.NextFrame({ state: {
21496
21447
  ...state,
21497
21448
  value,
@@ -21969,7 +21920,7 @@ const optional$1 = (param) => {
21969
21920
  */
21970
21921
  const withDefault$1 = /*#__PURE__*/ dual(2, (self, defaultValue) => {
21971
21922
  if (!isEffect(defaultValue)) return map(optional$1(self), getOrElse(() => defaultValue));
21972
- return mapEffect(optional$1(self), match$5({
21923
+ return mapEffect(optional$1(self), match$4({
21973
21924
  onNone: () => defaultValue,
21974
21925
  onSome: succeed$2
21975
21926
  }));
@@ -22754,7 +22705,7 @@ const toFlagDoc = (single, metadata) => {
22754
22705
  const appendChoiceKeys = (description, choiceKeys) => {
22755
22706
  if (choiceKeys === void 0 || choiceKeys.length === 0) return description;
22756
22707
  const choiceSuffix = `(choices: ${choiceKeys.join(", ")})`;
22757
- return match$5(description, {
22708
+ return match$4(description, {
22758
22709
  onNone: () => some(choiceSuffix),
22759
22710
  onSome: (value) => some(`${value} ${choiceSuffix}`)
22760
22711
  });
@@ -24425,7 +24376,7 @@ const suggest = (input, candidates) => {
24425
24376
  /**
24426
24377
  * @internal
24427
24378
  */
24428
- const getCommandPath = (parsedInput) => match$5(parsedInput.subcommand, {
24379
+ const getCommandPath = (parsedInput) => match$4(parsedInput.subcommand, {
24429
24380
  onNone: () => [],
24430
24381
  onSome: (subcommand) => [subcommand.name, ...getCommandPath(subcommand.parsedInput)]
24431
24382
  });
@@ -25537,7 +25488,7 @@ const runWith = (command, config) => {
25537
25488
  const [, value] = yield* flag.flag.parse(emptyArgs);
25538
25489
  program = provideService(program, flag, value);
25539
25490
  }
25540
- const services = match$5(logLevel, {
25491
+ const services = match$4(logLevel, {
25541
25492
  onNone: () => empty$2(),
25542
25493
  onSome: (level) => make$26(MinimumLogLevel, level)
25543
25494
  });
@@ -25546,7 +25497,7 @@ const runWith = (command, config) => {
25546
25497
  };
25547
25498
  //#endregion
25548
25499
  //#region package.json
25549
- var version = "0.1.1082";
25500
+ var version = "0.1.1083";
25550
25501
  //#endregion
25551
25502
  //#region src/install.ts
25552
25503
  const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
@@ -25572,7 +25523,7 @@ const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
25572
25523
  path.join(home, ".codex"),
25573
25524
  yield* pipe(String$2("CLAUDE_CONFIG_DIR"), withDefault$2(path.join(home, ".claude"))),
25574
25525
  yield* pipe(String$2("CODEX_HOME"), withDefault$2(path.join(home, ".codex")))
25575
- ]), canonical);
25526
+ ]), canonical, { concurrency: "unbounded" });
25576
25527
  const entries = yield* fs.readDirectory(root);
25577
25528
  const directories = pipe([
25578
25529
  ".agents",
@@ -25582,7 +25533,7 @@ const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
25582
25533
  const targets = dedupe([
25583
25534
  ...directories,
25584
25535
  ".claude",
25585
- ...match(contains(directories, ".codex"), {
25536
+ ...match$6(contains(directories, ".codex"), {
25586
25537
  onFalse: () => [".agents"],
25587
25538
  onTrue: () => empty$3()
25588
25539
  })
@@ -25611,6 +25562,10 @@ const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
25611
25562
  }
25612
25563
  for (const directory of targets) {
25613
25564
  yield* fs.makeDirectory(path.join(root, directory, "skills"), { recursive: true });
25565
+ for (const name of ["architecture", "testing"]) yield* fs.remove(path.join(root, directory, "skills", name), {
25566
+ force: true,
25567
+ recursive: true
25568
+ });
25614
25569
  for (const name of names) {
25615
25570
  const target = path.join(root, directory, "skills", name);
25616
25571
  yield* fs.remove(target, {
@@ -25621,7 +25576,7 @@ const cli = pipe(make("deslop-coding-standards", {}, fnUntraced(function* () {
25621
25576
  }
25622
25577
  }
25623
25578
  yield* log(`Installed ${join$1(names, ", ")} in ${pipe(targets, map$8((directory) => path.join(root, directory, "skills")), join$1(", "))}.`);
25624
- })), withDescription("Install the package’s architecture, engineering, design, testing and review skills at the Git repository root, including linked worktrees. Copy into each existing .agents, .claude and .codex skills directory, always .claude, and .agents when no .codex exists. Replace only package-owned names; preserve other skills and global configuration. Reject destinations outside the repository before copying. Refer to skills by name. Run the latest CLI transiently without adding a dependency. These skills belong in repositories, not global configuration."), withExamples([{
25579
+ })), withDescription("Install the package’s engineering, design and review skills at the Git repository root, including linked worktrees. Copy into each existing .agents, .claude and .codex skills directory, always .claude, and .agents when no .codex exists. Replace only package-owned names; preserve other skills and global configuration. Reject destinations outside the repository before copying. Refer to skills by name. Run the latest CLI transiently without adding a dependency. These skills belong in repositories, not global configuration."), withExamples([{
25625
25580
  command: "vpx @deslop/coding-standards@latest",
25626
25581
  description: "Install or refresh this repository’s shared skills without adding a dependency."
25627
25582
  }]));
package/dist/oxlint.d.ts CHANGED
@@ -4017,11 +4017,14 @@ export declare const oxlint: {
4017
4017
  files: string[];
4018
4018
  rules: {
4019
4019
  'import/no-default-export': "off";
4020
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4020
4021
  'shadcn/no-restyle'?: undefined;
4021
4022
  'shadcn/require-static-classes'?: undefined;
4022
4023
  '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4023
4024
  '@deslop/coding-standards/no-native-control'?: undefined;
4024
4025
  '@deslop/coding-standards/no-renamed-import'?: undefined;
4026
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4027
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4025
4028
  'react/rules-of-hooks'?: undefined;
4026
4029
  '@deslop/coding-standards/no-discarded-failure'?: undefined;
4027
4030
  'effecttsgo/async-function'?: undefined;
@@ -4033,11 +4036,33 @@ export declare const oxlint: {
4033
4036
  files: string[];
4034
4037
  rules: {
4035
4038
  'import/no-default-export'?: undefined;
4039
+ '@deslop/coding-standards/no-barrel-module': "off";
4040
+ 'shadcn/no-restyle'?: undefined;
4041
+ 'shadcn/require-static-classes'?: undefined;
4042
+ '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4043
+ '@deslop/coding-standards/no-native-control'?: undefined;
4044
+ '@deslop/coding-standards/no-renamed-import'?: undefined;
4045
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4046
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4047
+ 'react/rules-of-hooks'?: undefined;
4048
+ '@deslop/coding-standards/no-discarded-failure'?: undefined;
4049
+ 'effecttsgo/async-function'?: undefined;
4050
+ 'typescript/require-await'?: undefined;
4051
+ 'typescript/strict-void-return'?: undefined;
4052
+ 'unicorn/no-null'?: undefined;
4053
+ };
4054
+ } | {
4055
+ files: string[];
4056
+ rules: {
4057
+ 'import/no-default-export'?: undefined;
4058
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4036
4059
  'shadcn/no-restyle': "off";
4037
4060
  'shadcn/require-static-classes': "off";
4038
4061
  '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4039
4062
  '@deslop/coding-standards/no-native-control'?: undefined;
4040
4063
  '@deslop/coding-standards/no-renamed-import'?: undefined;
4064
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4065
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4041
4066
  'react/rules-of-hooks'?: undefined;
4042
4067
  '@deslop/coding-standards/no-discarded-failure'?: undefined;
4043
4068
  'effecttsgo/async-function'?: undefined;
@@ -4049,11 +4074,14 @@ export declare const oxlint: {
4049
4074
  files: string[];
4050
4075
  rules: {
4051
4076
  'import/no-default-export'?: undefined;
4077
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4052
4078
  'shadcn/no-restyle'?: undefined;
4053
4079
  'shadcn/require-static-classes'?: undefined;
4054
4080
  '@deslop/coding-standards/no-destructured-parameter': "off";
4055
4081
  '@deslop/coding-standards/no-native-control': "off";
4056
4082
  '@deslop/coding-standards/no-renamed-import': "off";
4083
+ 'jsx-a11y/click-events-have-key-events': "off";
4084
+ 'jsx-a11y/label-has-associated-control': "off";
4057
4085
  'react/rules-of-hooks'?: undefined;
4058
4086
  '@deslop/coding-standards/no-discarded-failure'?: undefined;
4059
4087
  'effecttsgo/async-function'?: undefined;
@@ -4065,11 +4093,14 @@ export declare const oxlint: {
4065
4093
  files: string[];
4066
4094
  rules: {
4067
4095
  'import/no-default-export'?: undefined;
4096
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4068
4097
  'shadcn/no-restyle'?: undefined;
4069
4098
  'shadcn/require-static-classes'?: undefined;
4070
4099
  '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4071
4100
  '@deslop/coding-standards/no-native-control'?: undefined;
4072
4101
  '@deslop/coding-standards/no-renamed-import'?: undefined;
4102
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4103
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4073
4104
  'react/rules-of-hooks': "off";
4074
4105
  '@deslop/coding-standards/no-discarded-failure'?: undefined;
4075
4106
  'effecttsgo/async-function'?: undefined;
@@ -4081,11 +4112,14 @@ export declare const oxlint: {
4081
4112
  files: string[];
4082
4113
  rules: {
4083
4114
  'import/no-default-export'?: undefined;
4115
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4084
4116
  'shadcn/no-restyle'?: undefined;
4085
4117
  'shadcn/require-static-classes'?: undefined;
4086
4118
  '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4087
4119
  '@deslop/coding-standards/no-native-control'?: undefined;
4088
4120
  '@deslop/coding-standards/no-renamed-import'?: undefined;
4121
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4122
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4089
4123
  'react/rules-of-hooks'?: undefined;
4090
4124
  '@deslop/coding-standards/no-discarded-failure': "off";
4091
4125
  'effecttsgo/async-function'?: undefined;
@@ -4097,11 +4131,14 @@ export declare const oxlint: {
4097
4131
  files: string[];
4098
4132
  rules: {
4099
4133
  'import/no-default-export'?: undefined;
4134
+ '@deslop/coding-standards/no-barrel-module'?: undefined;
4100
4135
  'shadcn/no-restyle'?: undefined;
4101
4136
  'shadcn/require-static-classes'?: undefined;
4102
4137
  '@deslop/coding-standards/no-destructured-parameter'?: undefined;
4103
4138
  '@deslop/coding-standards/no-native-control'?: undefined;
4104
4139
  '@deslop/coding-standards/no-renamed-import'?: undefined;
4140
+ 'jsx-a11y/click-events-have-key-events'?: undefined;
4141
+ 'jsx-a11y/label-has-associated-control'?: undefined;
4105
4142
  'react/rules-of-hooks'?: undefined;
4106
4143
  '@deslop/coding-standards/no-discarded-failure'?: undefined;
4107
4144
  'effecttsgo/async-function': "off";
@@ -4110,17 +4147,24 @@ export declare const oxlint: {
4110
4147
  'unicorn/no-null': "off";
4111
4148
  };
4112
4149
  })[];
4113
- plugins: ("effecttsgo" | "eslint" | "import" | "oxc" | "react" | "typescript" | "unicorn")[];
4150
+ plugins: ("effecttsgo" | "eslint" | "import" | "jsx-a11y" | "oxc" | "react" | "typescript" | "unicorn")[];
4114
4151
  rules: {
4152
+ '@deslop/coding-standards/explicit-effect-concurrency': "error";
4153
+ '@deslop/coding-standards/motion-limits': "error";
4115
4154
  '@deslop/coding-standards/no-array-wrap-ternary': "error";
4155
+ '@deslop/coding-standards/no-barrel-module': "error";
4156
+ '@deslop/coding-standards/no-compiler-opt-out': "error";
4157
+ '@deslop/coding-standards/no-component-atom-allocation': "error";
4116
4158
  '@deslop/coding-standards/no-constant-function': "error";
4117
4159
  '@deslop/coding-standards/no-deep-pipe': "error";
4118
4160
  '@deslop/coding-standards/no-destructured-parameter': "error";
4119
4161
  '@deslop/coding-standards/no-discarded-failure': "error";
4120
4162
  '@deslop/coding-standards/no-double-nullish-check': "error";
4121
4163
  '@deslop/coding-standards/no-effect-property-arrow': "error";
4164
+ '@deslop/coding-standards/no-empty-recovery': "error";
4122
4165
  '@deslop/coding-standards/no-error-message-assertion': "error";
4123
4166
  '@deslop/coding-standards/no-fake-ref-state': "error";
4167
+ '@deslop/coding-standards/no-gradient': "error";
4124
4168
  '@deslop/coding-standards/no-hand-written-guard': "error";
4125
4169
  '@deslop/coding-standards/no-in-operator': "error";
4126
4170
  '@deslop/coding-standards/no-let': "error";
@@ -4146,6 +4190,7 @@ export declare const oxlint: {
4146
4190
  '@deslop/coding-standards/no-undestructured-use-state': "error";
4147
4191
  '@deslop/coding-standards/no-unexplained-disable': "error";
4148
4192
  '@deslop/coding-standards/no-unvalidated-json-decode': "error";
4193
+ '@deslop/coding-standards/preserve-error-cause': "error";
4149
4194
  '@deslop/coding-standards/schema-type-pair': "error";
4150
4195
  'effecttsgo/abort-controller-in-effect': "error";
4151
4196
  'effecttsgo/crypto-random-uuid': "error";
@@ -4281,7 +4326,9 @@ export declare const oxlint: {
4281
4326
  'typescript/no-inferrable-types': "error";
4282
4327
  'typescript/no-invalid-void-type': "error";
4283
4328
  'typescript/no-misused-promises': ["error", {
4284
- checksVoidReturn: false;
4329
+ checksVoidReturn: {
4330
+ attributes: false;
4331
+ };
4285
4332
  }];
4286
4333
  'typescript/no-misused-spread': "error";
4287
4334
  'typescript/no-namespace': ["error", {
@@ -4316,6 +4363,7 @@ export declare const oxlint: {
4316
4363
  'typescript/restrict-plus-operands': "error";
4317
4364
  'typescript/restrict-template-expressions': "error";
4318
4365
  'typescript/strict-boolean-expressions': ["error", {
4366
+ allowNullableObject: false;
4319
4367
  allowNumber: false;
4320
4368
  allowString: false;
4321
4369
  }];
@@ -4353,6 +4401,7 @@ export declare const oxlint: {
4353
4401
  regex: string;
4354
4402
  }[];
4355
4403
  }];
4404
+ 'array-callback-return': "error";
4356
4405
  'max-depth': ["error", number];
4357
4406
  'max-nested-callbacks': ["error", number];
4358
4407
  'no-cond-assign': "error";
@@ -4566,6 +4615,12 @@ export declare const oxlint: {
4566
4615
  }];
4567
4616
  'prefer-template': "error";
4568
4617
  'require-unicode-regexp': "error";
4618
+ 'jsx-a11y/autocomplete-valid': "error";
4619
+ 'jsx-a11y/click-events-have-key-events': "error";
4620
+ 'jsx-a11y/control-has-associated-label': "error";
4621
+ 'jsx-a11y/interactive-supports-focus': "error";
4622
+ 'jsx-a11y/label-has-associated-control': "error";
4623
+ 'react-doctor/no-aria-invalid-without-description': "error";
4569
4624
  'react-doctor/no-call-component-as-function': "error";
4570
4625
  'react-doctor/no-controlled-input-value-without-state-update': "error";
4571
4626
  'react-doctor/no-create-context-in-render': "error";
@@ -4573,12 +4628,18 @@ export declare const oxlint: {
4573
4628
  'react-doctor/no-inline-exhaustive-style': "error";
4574
4629
  'react-doctor/no-jsx-element-type': "error";
4575
4630
  'react-doctor/no-many-boolean-props': "error";
4631
+ 'react-doctor/no-nested-card-surface': "error";
4632
+ 'react-doctor/no-placeholder-only-field': "error";
4576
4633
  'react-doctor/no-prop-types': "error";
4577
4634
  'react-doctor/no-uncontrolled-input': "error";
4635
+ 'react-doctor/shadcn-dialog-content-requires-title': "error";
4578
4636
  'react-doctor/shadcn-icon-button-requires-label': "error";
4579
4637
  'react-doctor/effect-listener-cleanup-mismatch': "error";
4638
+ 'react-doctor/effect-needs-cleanup': "error";
4639
+ 'react-doctor/no-adjust-state-on-prop-change': "error";
4580
4640
  'react-doctor/no-async-effect-callback': "error";
4581
4641
  'react-doctor/no-create-object-url-without-revoke': "error";
4642
+ 'react-doctor/no-derived-state': "error";
4582
4643
  'react-doctor/no-derived-useState': "error";
4583
4644
  'react-doctor/no-effect-event-in-deps': "error";
4584
4645
  'react-doctor/no-effect-with-fresh-deps': "error";
@@ -4606,10 +4667,10 @@ export declare const oxlint: {
4606
4667
  'react-doctor/no-large-animated-blur': "error";
4607
4668
  'react-doctor/no-layout-property-animation': "error";
4608
4669
  'react-doctor/no-layout-transition-inline': "error";
4609
- 'react-doctor/no-long-transition-duration': "error";
4610
4670
  'react-doctor/no-outline-none': "error";
4611
- 'react-doctor/no-scale-from-zero': "error";
4671
+ 'react-doctor/no-reduced-motion-content-removal': "error";
4612
4672
  'react-doctor/no-transition-all': "error";
4673
+ 'react-doctor/no-ungated-tailwind-animation': "error";
4613
4674
  'react/button-has-type': "error";
4614
4675
  'react/checked-requires-onchange-or-readonly': "error";
4615
4676
  'react/exhaustive-deps': "error";
@@ -4641,6 +4702,7 @@ export declare const oxlint: {
4641
4702
  'react/preserve-manual-memoization': "error";
4642
4703
  'react/purity': "error";
4643
4704
  'react/refs': "error";
4705
+ 'react/rule-suppression': "error";
4644
4706
  'react/rules-of-hooks': "error";
4645
4707
  'react/self-closing-comp': "error";
4646
4708
  'react/set-state-in-effect': "error";
@@ -4683,6 +4745,8 @@ export declare const oxlint: {
4683
4745
  'typescript/no-unnecessary-type-assertion': "error";
4684
4746
  'typescript/no-useless-default-assignment': "error";
4685
4747
  'unicorn/filename-case': "error";
4748
+ 'unicorn/no-abusive-eslint-disable': "error";
4749
+ 'unicorn/no-empty-file': "error";
4686
4750
  'unicorn/no-immediate-mutation': "error";
4687
4751
  'unicorn/no-null': "error";
4688
4752
  'unicorn/no-object-as-default-parameter': "error";
@@ -4696,6 +4760,14 @@ export declare const oxlint: {
4696
4760
  'use-isnan': "error";
4697
4761
  };
4698
4762
  settings: {
4763
+ 'jsx-a11y': {
4764
+ components: {
4765
+ Button: string;
4766
+ Input: string;
4767
+ Label: string;
4768
+ Textarea: string;
4769
+ };
4770
+ };
4699
4771
  react: {
4700
4772
  version: string;
4701
4773
  };