@clerc/plugin-not-found 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/index.mjs +2 -154
  2. package/package.json +2 -2
package/dist/index.mjs CHANGED
@@ -1,154 +1,2 @@
1
- import { NoCommandSpecifiedError, NoSuchCommandError, definePlugin } from "@clerc/core";
2
- import * as tint from "@uttr/tint";
3
-
4
- //#region rolldown:runtime
5
- var __commonJSMin = (cb, mod) => () => (mod || cb((mod = { exports: {} }).exports, mod), mod.exports);
6
-
7
- //#endregion
8
- //#region ../../node_modules/.pnpm/fastest-levenshtein@1.0.16/node_modules/fastest-levenshtein/mod.js
9
- var require_fastest_levenshtein = /* @__PURE__ */ __commonJSMin(((exports) => {
10
- exports.__esModule = true;
11
- exports.distance = exports.closest = void 0;
12
- var peq = new Uint32Array(65536);
13
- var myers_32 = function(a, b) {
14
- var n = a.length;
15
- var m = b.length;
16
- var lst = 1 << n - 1;
17
- var pv = -1;
18
- var mv = 0;
19
- var sc = n;
20
- var i = n;
21
- while (i--) peq[a.charCodeAt(i)] |= 1 << i;
22
- for (i = 0; i < m; i++) {
23
- var eq = peq[b.charCodeAt(i)];
24
- var xv = eq | mv;
25
- eq |= (eq & pv) + pv ^ pv;
26
- mv |= ~(eq | pv);
27
- pv &= eq;
28
- if (mv & lst) sc++;
29
- if (pv & lst) sc--;
30
- mv = mv << 1 | 1;
31
- pv = pv << 1 | ~(xv | mv);
32
- mv &= xv;
33
- }
34
- i = n;
35
- while (i--) peq[a.charCodeAt(i)] = 0;
36
- return sc;
37
- };
38
- var myers_x = function(b, a) {
39
- var n = a.length;
40
- var m = b.length;
41
- var mhc = [];
42
- var phc = [];
43
- var hsize = Math.ceil(n / 32);
44
- var vsize = Math.ceil(m / 32);
45
- for (var i = 0; i < hsize; i++) {
46
- phc[i] = -1;
47
- mhc[i] = 0;
48
- }
49
- var j = 0;
50
- for (; j < vsize - 1; j++) {
51
- var mv_1 = 0;
52
- var pv_1 = -1;
53
- var start_1 = j * 32;
54
- var vlen_1 = Math.min(32, m) + start_1;
55
- for (var k = start_1; k < vlen_1; k++) peq[b.charCodeAt(k)] |= 1 << k;
56
- for (var i = 0; i < n; i++) {
57
- var eq = peq[a.charCodeAt(i)];
58
- var pb = phc[i / 32 | 0] >>> i & 1;
59
- var mb = mhc[i / 32 | 0] >>> i & 1;
60
- var xv = eq | mv_1;
61
- var xh = ((eq | mb) & pv_1) + pv_1 ^ pv_1 | eq | mb;
62
- var ph = mv_1 | ~(xh | pv_1);
63
- var mh = pv_1 & xh;
64
- if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
65
- if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
66
- ph = ph << 1 | pb;
67
- mh = mh << 1 | mb;
68
- pv_1 = mh | ~(xv | ph);
69
- mv_1 = ph & xv;
70
- }
71
- for (var k = start_1; k < vlen_1; k++) peq[b.charCodeAt(k)] = 0;
72
- }
73
- var mv = 0;
74
- var pv = -1;
75
- var start = j * 32;
76
- var vlen = Math.min(32, m - start) + start;
77
- for (var k = start; k < vlen; k++) peq[b.charCodeAt(k)] |= 1 << k;
78
- var score = m;
79
- for (var i = 0; i < n; i++) {
80
- var eq = peq[a.charCodeAt(i)];
81
- var pb = phc[i / 32 | 0] >>> i & 1;
82
- var mb = mhc[i / 32 | 0] >>> i & 1;
83
- var xv = eq | mv;
84
- var xh = ((eq | mb) & pv) + pv ^ pv | eq | mb;
85
- var ph = mv | ~(xh | pv);
86
- var mh = pv & xh;
87
- score += ph >>> m - 1 & 1;
88
- score -= mh >>> m - 1 & 1;
89
- if (ph >>> 31 ^ pb) phc[i / 32 | 0] ^= 1 << i;
90
- if (mh >>> 31 ^ mb) mhc[i / 32 | 0] ^= 1 << i;
91
- ph = ph << 1 | pb;
92
- mh = mh << 1 | mb;
93
- pv = mh | ~(xv | ph);
94
- mv = ph & xv;
95
- }
96
- for (var k = start; k < vlen; k++) peq[b.charCodeAt(k)] = 0;
97
- return score;
98
- };
99
- var distance = function(a, b) {
100
- if (a.length < b.length) {
101
- var tmp = b;
102
- b = a;
103
- a = tmp;
104
- }
105
- if (b.length === 0) return a.length;
106
- if (a.length <= 32) return myers_32(a, b);
107
- return myers_x(a, b);
108
- };
109
- exports.distance = distance;
110
- var closest = function(str, arr) {
111
- var min_distance = Infinity;
112
- var min_index = 0;
113
- for (var i = 0; i < arr.length; i++) {
114
- var dist = distance(str, arr[i]);
115
- if (dist < min_distance) {
116
- min_distance = dist;
117
- min_index = i;
118
- }
119
- }
120
- return arr[min_index];
121
- };
122
- exports.closest = closest;
123
- }));
124
-
125
- //#endregion
126
- //#region src/index.ts
127
- var import_fastest_levenshtein = require_fastest_levenshtein();
128
- const notFoundPlugin = ({ distanceThreshold = 5 } = {}) => definePlugin({ setup: (cli) => cli.interceptor({
129
- enforce: "post",
130
- handler: async (_ctx, next) => {
131
- const commandKeys = [...cli._commands.keys()];
132
- const hasCommands = commandKeys.length > 0;
133
- try {
134
- await next();
135
- } catch (e) {
136
- if (!(e instanceof NoSuchCommandError) && !(e instanceof NoCommandSpecifiedError)) throw e;
137
- if (e instanceof NoCommandSpecifiedError) {
138
- let text$1 = "No command specified.";
139
- if (hasCommands) text$1 += `\nPossible commands: ${commandKeys.join(", ")}.`;
140
- throw new NoCommandSpecifiedError(text$1);
141
- }
142
- const { commandName } = e;
143
- let closestCommandName = (0, import_fastest_levenshtein.closest)(commandName, commandKeys);
144
- if ((0, import_fastest_levenshtein.distance)(commandName, closestCommandName) > distanceThreshold) closestCommandName = void 0;
145
- let text = `Command "${tint.strikethrough(commandName)}" not found.`;
146
- if (hasCommands && closestCommandName) text += `\nDid you mean "${tint.bold(closestCommandName)}"?`;
147
- else if (!hasCommands) text += "\nNo commands registered.";
148
- throw new NoSuchCommandError(commandName, text);
149
- }
150
- }
151
- }) });
152
-
153
- //#endregion
154
- export { notFoundPlugin };
1
+ import{NoCommandSpecifiedError as e,NoSuchCommandError as t,definePlugin as n}from"@clerc/core";import*as r from"@uttr/tint";var i=((e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports))((e=>{e.__esModule=!0,e.distance=e.closest=void 0;var t=new Uint32Array(65536),n=function(e,n){for(var r=e.length,i=n.length,a=1<<r-1,o=-1,s=0,c=r,l=r;l--;)t[e.charCodeAt(l)]|=1<<l;for(l=0;l<i;l++){var u=t[n.charCodeAt(l)],d=u|s;u|=(u&o)+o^o,s|=~(u|o),o&=u,s&a&&c++,o&a&&c--,s=s<<1|1,o=o<<1|~(d|s),s&=d}for(l=r;l--;)t[e.charCodeAt(l)]=0;return c},r=function(e,n){for(var r=n.length,i=e.length,a=[],o=[],s=Math.ceil(r/32),c=Math.ceil(i/32),l=0;l<s;l++)o[l]=-1,a[l]=0;for(var u=0;u<c-1;u++){for(var d=0,f=-1,p=u*32,m=Math.min(32,i)+p,h=p;h<m;h++)t[e.charCodeAt(h)]|=1<<h;for(var l=0;l<r;l++){var g=t[n.charCodeAt(l)],_=o[l/32|0]>>>l&1,v=a[l/32|0]>>>l&1,y=g|d,b=((g|v)&f)+f^f|g|v,x=d|~(b|f),S=f&b;x>>>31^_&&(o[l/32|0]^=1<<l),S>>>31^v&&(a[l/32|0]^=1<<l),x=x<<1|_,S=S<<1|v,f=S|~(y|x),d=x&y}for(var h=p;h<m;h++)t[e.charCodeAt(h)]=0}for(var C=0,w=-1,T=u*32,E=Math.min(32,i-T)+T,h=T;h<E;h++)t[e.charCodeAt(h)]|=1<<h;for(var D=i,l=0;l<r;l++){var g=t[n.charCodeAt(l)],_=o[l/32|0]>>>l&1,v=a[l/32|0]>>>l&1,y=g|C,b=((g|v)&w)+w^w|g|v,x=C|~(b|w),S=w&b;D+=x>>>i-1&1,D-=S>>>i-1&1,x>>>31^_&&(o[l/32|0]^=1<<l),S>>>31^v&&(a[l/32|0]^=1<<l),x=x<<1|_,S=S<<1|v,w=S|~(y|x),C=x&y}for(var h=T;h<E;h++)t[e.charCodeAt(h)]=0;return D},i=function(e,t){if(e.length<t.length){var i=t;t=e,e=i}return t.length===0?e.length:e.length<=32?n(e,t):r(e,t)};e.distance=i,e.closest=function(e,t){for(var n=1/0,r=0,a=0;a<t.length;a++){var o=i(e,t[a]);o<n&&(n=o,r=a)}return t[r]}}))();const a=({distanceThreshold:a=5}={})=>n({setup:n=>n.interceptor({enforce:`post`,handler:async(o,s)=>{let c=[...n._commands.keys()],l=c.length>0;try{await s()}catch(n){if(!(n instanceof t)&&!(n instanceof e))throw n;if(n instanceof e){let t=`No command specified.`;throw l&&(t+=`\nPossible commands: ${c.join(`, `)}.`),new e(t)}let{commandName:o}=n,s=(0,i.closest)(o,c);(0,i.distance)(o,s)>a&&(s=void 0);let u=`Command "${r.strikethrough(o)}" not found.`;throw l&&s?u+=`\nDid you mean "${r.bold(s)}"?`:l||(u+=`
2
+ No commands registered.`),new t(o,u)}}})});export{a as notFoundPlugin};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clerc/plugin-not-found",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "author": "Ray <i@mk1.io> (https://github.com/so1ve)",
5
5
  "type": "module",
6
6
  "description": "Clerc plugin not found (did you mean)",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "fastest-levenshtein": "^1.0.16",
45
- "@clerc/core": "1.1.0"
45
+ "@clerc/core": "1.2.0"
46
46
  },
47
47
  "peerDependencies": {
48
48
  "@clerc/core": "*"