@shafnas/react-password-validator 1.0.3 → 1.0.5

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.
@@ -1,148 +1,149 @@
1
- import se, { useMemo as le, forwardRef as V, createElement as O } from "react";
2
- var g = { exports: {} }, _ = {};
3
- var D;
4
- function ce() {
5
- if (D) return _;
6
- D = 1;
7
- var r = /* @__PURE__ */ Symbol.for("react.transitional.element"), t = /* @__PURE__ */ Symbol.for("react.fragment");
8
- function a(s, o, l) {
9
- var d = null;
10
- if (l !== void 0 && (d = "" + l), o.key !== void 0 && (d = "" + o.key), "key" in o) {
11
- l = {};
12
- for (var m in o)
13
- m !== "key" && (l[m] = o[m]);
14
- } else l = o;
15
- return o = l.ref, {
16
- $$typeof: r,
17
- type: s,
18
- key: d,
19
- ref: o !== void 0 ? o : null,
20
- props: l
1
+ import re, { useMemo as te } from "react";
2
+ import { Check as ne, X as ae } from "lucide-react";
3
+ var x = { exports: {} }, _ = {};
4
+ var F;
5
+ function oe() {
6
+ if (F) return _;
7
+ F = 1;
8
+ var t = /* @__PURE__ */ Symbol.for("react.transitional.element"), n = /* @__PURE__ */ Symbol.for("react.fragment");
9
+ function o(f, s, u) {
10
+ var m = null;
11
+ if (u !== void 0 && (m = "" + u), s.key !== void 0 && (m = "" + s.key), "key" in s) {
12
+ u = {};
13
+ for (var b in s)
14
+ b !== "key" && (u[b] = s[b]);
15
+ } else u = s;
16
+ return s = u.ref, {
17
+ $$typeof: t,
18
+ type: f,
19
+ key: m,
20
+ ref: s !== void 0 ? s : null,
21
+ props: u
21
22
  };
22
23
  }
23
- return _.Fragment = t, _.jsx = a, _.jsxs = a, _;
24
+ return _.Fragment = n, _.jsx = o, _.jsxs = o, _;
24
25
  }
25
- var p = {};
26
- var U;
27
- function ue() {
28
- return U || (U = 1, process.env.NODE_ENV !== "production" && (function() {
29
- function r(e) {
26
+ var E = {};
27
+ var D;
28
+ function se() {
29
+ return D || (D = 1, process.env.NODE_ENV !== "production" && (function() {
30
+ function t(e) {
30
31
  if (e == null) return null;
31
32
  if (typeof e == "function")
32
- return e.$$typeof === ne ? null : e.displayName || e.name || null;
33
+ return e.$$typeof === Q ? null : e.displayName || e.name || null;
33
34
  if (typeof e == "string") return e;
34
35
  switch (e) {
35
36
  case T:
36
37
  return "Fragment";
37
- case X:
38
+ case V:
38
39
  return "Profiler";
39
- case G:
40
+ case W:
40
41
  return "StrictMode";
41
- case K:
42
+ case X:
42
43
  return "Suspense";
43
- case ee:
44
+ case Z:
44
45
  return "SuspenseList";
45
- case te:
46
+ case H:
46
47
  return "Activity";
47
48
  }
48
49
  if (typeof e == "object")
49
50
  switch (typeof e.tag == "number" && console.error(
50
51
  "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."
51
52
  ), e.$$typeof) {
52
- case Z:
53
+ case U:
53
54
  return "Portal";
54
- case H:
55
+ case J:
55
56
  return e.displayName || "Context";
56
- case B:
57
+ case q:
57
58
  return (e._context.displayName || "Context") + ".Consumer";
58
- case Q:
59
- var n = e.render;
60
- return e = e.displayName, e || (e = n.displayName || n.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
61
- case re:
62
- return n = e.displayName || null, n !== null ? n : r(e.type) || "Memo";
63
- case y:
64
- n = e._payload, e = e._init;
59
+ case G:
60
+ var r = e.render;
61
+ return e = e.displayName, e || (e = r.displayName || r.name || "", e = e !== "" ? "ForwardRef(" + e + ")" : "ForwardRef"), e;
62
+ case B:
63
+ return r = e.displayName || null, r !== null ? r : t(e.type) || "Memo";
64
+ case g:
65
+ r = e._payload, e = e._init;
65
66
  try {
66
- return r(e(n));
67
+ return t(e(r));
67
68
  } catch {
68
69
  }
69
70
  }
70
71
  return null;
71
72
  }
72
- function t(e) {
73
+ function n(e) {
73
74
  return "" + e;
74
75
  }
75
- function a(e) {
76
+ function o(e) {
76
77
  try {
77
- t(e);
78
- var n = !1;
78
+ n(e);
79
+ var r = !1;
79
80
  } catch {
80
- n = !0;
81
+ r = !0;
81
82
  }
82
- if (n) {
83
- n = console;
84
- var c = n.error, u = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
85
- return c.call(
86
- n,
83
+ if (r) {
84
+ r = console;
85
+ var a = r.error, l = typeof Symbol == "function" && Symbol.toStringTag && e[Symbol.toStringTag] || e.constructor.name || "Object";
86
+ return a.call(
87
+ r,
87
88
  "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",
88
- u
89
- ), t(e);
89
+ l
90
+ ), n(e);
90
91
  }
91
92
  }
92
- function s(e) {
93
+ function f(e) {
93
94
  if (e === T) return "<>";
94
- if (typeof e == "object" && e !== null && e.$$typeof === y)
95
+ if (typeof e == "object" && e !== null && e.$$typeof === g)
95
96
  return "<...>";
96
97
  try {
97
- var n = r(e);
98
- return n ? "<" + n + ">" : "<...>";
98
+ var r = t(e);
99
+ return r ? "<" + r + ">" : "<...>";
99
100
  } catch {
100
101
  return "<...>";
101
102
  }
102
103
  }
103
- function o() {
104
- var e = j.A;
104
+ function s() {
105
+ var e = h.A;
105
106
  return e === null ? null : e.getOwner();
106
107
  }
107
- function l() {
108
+ function u() {
108
109
  return Error("react-stack-top-frame");
109
110
  }
110
- function d(e) {
111
- if ($.call(e, "key")) {
112
- var n = Object.getOwnPropertyDescriptor(e, "key").get;
113
- if (n && n.isReactWarning) return !1;
111
+ function m(e) {
112
+ if (P.call(e, "key")) {
113
+ var r = Object.getOwnPropertyDescriptor(e, "key").get;
114
+ if (r && r.isReactWarning) return !1;
114
115
  }
115
116
  return e.key !== void 0;
116
117
  }
117
- function m(e, n) {
118
- function c() {
119
- Y || (Y = !0, console.error(
118
+ function b(e, r) {
119
+ function a() {
120
+ w || (w = !0, console.error(
120
121
  "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",
121
- n
122
+ r
122
123
  ));
123
124
  }
124
- c.isReactWarning = !0, Object.defineProperty(e, "key", {
125
- get: c,
125
+ a.isReactWarning = !0, Object.defineProperty(e, "key", {
126
+ get: a,
126
127
  configurable: !0
127
128
  });
128
129
  }
129
- function k() {
130
- var e = r(this.type);
131
- return I[e] || (I[e] = !0, console.error(
130
+ function L() {
131
+ var e = t(this.type);
132
+ return $[e] || ($[e] = !0, console.error(
132
133
  "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release."
133
134
  )), e = this.props.ref, e !== void 0 ? e : null;
134
135
  }
135
- function x(e, n, c, u, R, A) {
136
- var i = c.ref;
136
+ function M(e, r, a, l, p, j) {
137
+ var c = a.ref;
137
138
  return e = {
138
- $$typeof: C,
139
+ $$typeof: N,
139
140
  type: e,
140
- key: n,
141
- props: c,
142
- _owner: u
143
- }, (i !== void 0 ? i : null) !== null ? Object.defineProperty(e, "ref", {
141
+ key: r,
142
+ props: a,
143
+ _owner: l
144
+ }, (c !== void 0 ? c : null) !== null ? Object.defineProperty(e, "ref", {
144
145
  enumerable: !1,
145
- get: k
146
+ get: L
146
147
  }) : Object.defineProperty(e, "ref", { enumerable: !1, value: null }), e._store = {}, Object.defineProperty(e._store, "validated", {
147
148
  configurable: !1,
148
149
  enumerable: !1,
@@ -157,253 +158,177 @@ function ue() {
157
158
  configurable: !1,
158
159
  enumerable: !1,
159
160
  writable: !0,
160
- value: R
161
+ value: p
161
162
  }), Object.defineProperty(e, "_debugTask", {
162
163
  configurable: !1,
163
164
  enumerable: !1,
164
165
  writable: !0,
165
- value: A
166
+ value: j
166
167
  }), Object.freeze && (Object.freeze(e.props), Object.freeze(e)), e;
167
168
  }
168
- function E(e, n, c, u, R, A) {
169
- var i = n.children;
170
- if (i !== void 0)
171
- if (u)
172
- if (ae(i)) {
173
- for (u = 0; u < i.length; u++)
174
- P(i[u]);
175
- Object.freeze && Object.freeze(i);
169
+ function A(e, r, a, l, p, j) {
170
+ var c = r.children;
171
+ if (c !== void 0)
172
+ if (l)
173
+ if (K(c)) {
174
+ for (l = 0; l < c.length; l++)
175
+ S(c[l]);
176
+ Object.freeze && Object.freeze(c);
176
177
  } else
177
178
  console.error(
178
179
  "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead."
179
180
  );
180
- else P(i);
181
- if ($.call(n, "key")) {
182
- i = r(e);
183
- var b = Object.keys(n).filter(function(oe) {
184
- return oe !== "key";
181
+ else S(c);
182
+ if (P.call(r, "key")) {
183
+ c = t(e);
184
+ var d = Object.keys(r).filter(function(ee) {
185
+ return ee !== "key";
185
186
  });
186
- u = 0 < b.length ? "{key: someKey, " + b.join(": ..., ") + ": ...}" : "{key: someKey}", M[i + u] || (b = 0 < b.length ? "{" + b.join(": ..., ") + ": ...}" : "{}", console.error(
187
+ l = 0 < d.length ? "{key: someKey, " + d.join(": ..., ") + ": ...}" : "{key: someKey}", I[c + l] || (d = 0 < d.length ? "{" + d.join(": ..., ") + ": ...}" : "{}", console.error(
187
188
  `A props object containing a "key" prop is being spread into JSX:
188
189
  let props = %s;
189
190
  <%s {...props} />
190
191
  React keys must be passed directly to JSX without using spread:
191
192
  let props = %s;
192
193
  <%s key={someKey} {...props} />`,
193
- u,
194
- i,
195
- b,
196
- i
197
- ), M[i + u] = !0);
194
+ l,
195
+ c,
196
+ d,
197
+ c
198
+ ), I[c + l] = !0);
198
199
  }
199
- if (i = null, c !== void 0 && (a(c), i = "" + c), d(n) && (a(n.key), i = "" + n.key), "key" in n) {
200
- c = {};
201
- for (var N in n)
202
- N !== "key" && (c[N] = n[N]);
203
- } else c = n;
204
- return i && m(
205
- c,
200
+ if (c = null, a !== void 0 && (o(a), c = "" + a), m(r) && (o(r.key), c = "" + r.key), "key" in r) {
201
+ a = {};
202
+ for (var y in r)
203
+ y !== "key" && (a[y] = r[y]);
204
+ } else a = r;
205
+ return c && b(
206
+ a,
206
207
  typeof e == "function" ? e.displayName || e.name || "Unknown" : e
207
- ), x(
208
+ ), M(
208
209
  e,
209
- i,
210
210
  c,
211
- o(),
212
- R,
213
- A
211
+ a,
212
+ s(),
213
+ p,
214
+ j
214
215
  );
215
216
  }
216
- function P(e) {
217
- S(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === y && (e._payload.status === "fulfilled" ? S(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
218
- }
219
217
  function S(e) {
220
- return typeof e == "object" && e !== null && e.$$typeof === C;
218
+ O(e) ? e._store && (e._store.validated = 1) : typeof e == "object" && e !== null && e.$$typeof === g && (e._payload.status === "fulfilled" ? O(e._payload.value) && e._payload.value._store && (e._payload.value._store.validated = 1) : e._store && (e._store.validated = 1));
221
219
  }
222
- var h = se, C = /* @__PURE__ */ Symbol.for("react.transitional.element"), Z = /* @__PURE__ */ Symbol.for("react.portal"), T = /* @__PURE__ */ Symbol.for("react.fragment"), G = /* @__PURE__ */ Symbol.for("react.strict_mode"), X = /* @__PURE__ */ Symbol.for("react.profiler"), B = /* @__PURE__ */ Symbol.for("react.consumer"), H = /* @__PURE__ */ Symbol.for("react.context"), Q = /* @__PURE__ */ Symbol.for("react.forward_ref"), K = /* @__PURE__ */ Symbol.for("react.suspense"), ee = /* @__PURE__ */ Symbol.for("react.suspense_list"), re = /* @__PURE__ */ Symbol.for("react.memo"), y = /* @__PURE__ */ Symbol.for("react.lazy"), te = /* @__PURE__ */ Symbol.for("react.activity"), ne = /* @__PURE__ */ Symbol.for("react.client.reference"), j = h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, $ = Object.prototype.hasOwnProperty, ae = Array.isArray, w = console.createTask ? console.createTask : function() {
220
+ function O(e) {
221
+ return typeof e == "object" && e !== null && e.$$typeof === N;
222
+ }
223
+ var R = re, N = /* @__PURE__ */ Symbol.for("react.transitional.element"), U = /* @__PURE__ */ Symbol.for("react.portal"), T = /* @__PURE__ */ Symbol.for("react.fragment"), W = /* @__PURE__ */ Symbol.for("react.strict_mode"), V = /* @__PURE__ */ Symbol.for("react.profiler"), q = /* @__PURE__ */ Symbol.for("react.consumer"), J = /* @__PURE__ */ Symbol.for("react.context"), G = /* @__PURE__ */ Symbol.for("react.forward_ref"), X = /* @__PURE__ */ Symbol.for("react.suspense"), Z = /* @__PURE__ */ Symbol.for("react.suspense_list"), B = /* @__PURE__ */ Symbol.for("react.memo"), g = /* @__PURE__ */ Symbol.for("react.lazy"), H = /* @__PURE__ */ Symbol.for("react.activity"), Q = /* @__PURE__ */ Symbol.for("react.client.reference"), h = R.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, P = Object.prototype.hasOwnProperty, K = Array.isArray, k = console.createTask ? console.createTask : function() {
223
224
  return null;
224
225
  };
225
- h = {
226
+ R = {
226
227
  react_stack_bottom_frame: function(e) {
227
228
  return e();
228
229
  }
229
230
  };
230
- var Y, I = {}, L = h.react_stack_bottom_frame.bind(
231
- h,
232
- l
233
- )(), F = w(s(l)), M = {};
234
- p.Fragment = T, p.jsx = function(e, n, c) {
235
- var u = 1e4 > j.recentlyCreatedOwnerStacks++;
236
- return E(
231
+ var w, $ = {}, C = R.react_stack_bottom_frame.bind(
232
+ R,
233
+ u
234
+ )(), Y = k(f(u)), I = {};
235
+ E.Fragment = T, E.jsx = function(e, r, a) {
236
+ var l = 1e4 > h.recentlyCreatedOwnerStacks++;
237
+ return A(
237
238
  e,
238
- n,
239
- c,
239
+ r,
240
+ a,
240
241
  !1,
241
- u ? Error("react-stack-top-frame") : L,
242
- u ? w(s(e)) : F
242
+ l ? Error("react-stack-top-frame") : C,
243
+ l ? k(f(e)) : Y
243
244
  );
244
- }, p.jsxs = function(e, n, c) {
245
- var u = 1e4 > j.recentlyCreatedOwnerStacks++;
246
- return E(
245
+ }, E.jsxs = function(e, r, a) {
246
+ var l = 1e4 > h.recentlyCreatedOwnerStacks++;
247
+ return A(
247
248
  e,
248
- n,
249
- c,
249
+ r,
250
+ a,
250
251
  !0,
251
- u ? Error("react-stack-top-frame") : L,
252
- u ? w(s(e)) : F
252
+ l ? Error("react-stack-top-frame") : C,
253
+ l ? k(f(e)) : Y
253
254
  );
254
255
  };
255
- })()), p;
256
+ })()), E;
256
257
  }
257
- var W;
258
- function ie() {
259
- return W || (W = 1, process.env.NODE_ENV === "production" ? g.exports = ce() : g.exports = ue()), g.exports;
258
+ var z;
259
+ function le() {
260
+ return z || (z = 1, process.env.NODE_ENV === "production" ? x.exports = oe() : x.exports = se()), x.exports;
260
261
  }
261
- var f = ie();
262
- const fe = (r) => {
263
- const t = r.length >= 8 && r.length <= 14, a = /[a-z]/.test(r), s = /[A-Z]/.test(r), o = /[0-9]/.test(r), l = /[^A-Za-z0-9]/.test(r);
264
- return { length: t, lowercase: a, uppercase: s, number: o, symbol: l, valid: t && a && s && o && l };
265
- }, de = (r) => le(() => fe(r), [r]);
266
- const q = (...r) => r.filter((t, a, s) => !!t && t.trim() !== "" && s.indexOf(t) === a).join(" ").trim();
267
- const me = (r) => r.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
268
- const be = (r) => r.replace(
269
- /^([A-Z])|[\s-_]+(\w)/g,
270
- (t, a, s) => s ? s.toUpperCase() : a.toLowerCase()
271
- );
272
- const z = (r) => {
273
- const t = be(r);
274
- return t.charAt(0).toUpperCase() + t.slice(1);
275
- };
276
- var _e = {
277
- xmlns: "http://www.w3.org/2000/svg",
278
- width: 24,
279
- height: 24,
280
- viewBox: "0 0 24 24",
281
- fill: "none",
282
- stroke: "currentColor",
283
- strokeWidth: 2,
284
- strokeLinecap: "round",
285
- strokeLinejoin: "round"
286
- };
287
- const pe = (r) => {
288
- for (const t in r)
289
- if (t.startsWith("aria-") || t === "role" || t === "title")
290
- return !0;
291
- return !1;
292
- };
293
- const ve = V(
294
- ({
295
- color: r = "currentColor",
296
- size: t = 24,
297
- strokeWidth: a = 2,
298
- absoluteStrokeWidth: s,
299
- className: o = "",
300
- children: l,
301
- iconNode: d,
302
- ...m
303
- }, k) => O(
304
- "svg",
305
- {
306
- ref: k,
307
- ..._e,
308
- width: t,
309
- height: t,
310
- stroke: r,
311
- strokeWidth: s ? Number(a) * 24 / Number(t) : a,
312
- className: q("lucide", o),
313
- ...!l && !pe(m) && { "aria-hidden": "true" },
314
- ...m
315
- },
316
- [
317
- ...d.map(([x, E]) => O(x, E)),
318
- ...Array.isArray(l) ? l : [l]
319
- ]
320
- )
321
- );
322
- const J = (r, t) => {
323
- const a = V(
324
- ({ className: s, ...o }, l) => O(ve, {
325
- ref: l,
326
- iconNode: t,
327
- className: q(
328
- `lucide-${me(z(r))}`,
329
- `lucide-${r}`,
330
- s
331
- ),
332
- ...o
333
- })
334
- );
335
- return a.displayName = z(r), a;
336
- };
337
- const Ee = [["path", { d: "M20 6 9 17l-5-5", key: "1gmf2c" }]], he = J("check", Ee);
338
- const Re = [
339
- ["path", { d: "M18 6 6 18", key: "1bl5f8" }],
340
- ["path", { d: "m6 6 12 12", key: "d8bk6v" }]
341
- ], ge = J("x", Re), ke = (r) => {
342
- let t = 0;
343
- return r.length >= 2 && (t += 1), /[a-z]/.test(r) && (t += 1), /[A-Z]/.test(r) && (t += 1), /[0-9]/.test(r) && (t += 1), /[^A-Za-z0-9]/.test(r) && (t += 1), t <= 2 ? "weak" : t === 3 || t === 4 ? "medium" : "strong";
262
+ var i = le();
263
+ const ce = (t) => {
264
+ const n = t.length >= 8 && t.length <= 14, o = /[a-z]/.test(t), f = /[A-Z]/.test(t), s = /[0-9]/.test(t), u = /[^A-Za-z0-9]/.test(t);
265
+ return { length: n, lowercase: o, uppercase: f, number: s, symbol: u, valid: n && o && f && s && u };
266
+ }, ue = (t) => te(() => ce(t), [t]), ie = (t) => {
267
+ let n = 0;
268
+ return t.length >= 2 && (n += 1), /[a-z]/.test(t) && (n += 1), /[A-Z]/.test(t) && (n += 1), /[0-9]/.test(t) && (n += 1), /[^A-Za-z0-9]/.test(t) && (n += 1), n <= 2 ? "weak" : n === 3 || n === 4 ? "medium" : "strong";
344
269
  }, v = ({
345
- ok: r,
346
- label: t,
347
- className: a = ""
348
- }) => /* @__PURE__ */ f.jsxs("div", { className: `flex items-center gap-2 text-sm ${a}`, children: [
349
- r ? /* @__PURE__ */ f.jsx(he, { className: "w-4 h-4 text-green-600" }) : /* @__PURE__ */ f.jsx(ge, { className: "w-4 h-4 text-red-500" }),
350
- /* @__PURE__ */ f.jsx("span", { className: r ? "text-green-600" : "text-gray-500", children: t })
351
- ] }), xe = ({
352
- strength: r,
353
- className: t = ""
270
+ ok: t,
271
+ label: n,
272
+ className: o = ""
273
+ }) => /* @__PURE__ */ i.jsxs("div", { className: `flex items-center gap-2 text-sm ${o}`, children: [
274
+ t ? /* @__PURE__ */ i.jsx(ne, { className: "w-4 h-4 text-green-600" }) : /* @__PURE__ */ i.jsx(ae, { className: "w-4 h-4 text-red-500" }),
275
+ /* @__PURE__ */ i.jsx("span", { className: t ? "text-green-600" : "text-gray-500", children: n })
276
+ ] }), fe = ({
277
+ strength: t,
278
+ className: n = ""
354
279
  }) => {
355
- let a = "bg-red-500", s = "w-1/4";
356
- return r === "medium" ? (a = "bg-yellow-400", s = "w-2/3") : r === "strong" && (a = "bg-green-600", s = "w-full"), /* @__PURE__ */ f.jsx("div", { className: `h-2 bg-gray-200 rounded-full mt-2 ${t}`, children: /* @__PURE__ */ f.jsx(
280
+ let o = "bg-red-500", f = "w-1/4";
281
+ return t === "medium" ? (o = "bg-yellow-400", f = "w-2/3") : t === "strong" && (o = "bg-green-600", f = "w-full"), /* @__PURE__ */ i.jsx("div", { className: `h-2 bg-gray-200 rounded-full mt-2 ${n}`, children: /* @__PURE__ */ i.jsx(
357
282
  "div",
358
283
  {
359
- className: `${s} ${a} h-2 rounded-full transition-all`
284
+ className: `${f} ${o} h-2 rounded-full transition-all`
360
285
  }
361
286
  ) });
362
- }, ye = ({
363
- password: r,
364
- className: t = "",
365
- itemClassName: a = "",
366
- strengthBarClassName: s = ""
287
+ }, be = ({
288
+ password: t,
289
+ className: n = "",
290
+ itemClassName: o = "",
291
+ strengthBarClassName: f = ""
367
292
  }) => {
368
- const o = de(r), l = ke(r);
369
- return /* @__PURE__ */ f.jsxs("div", { className: `rounded-lg border p-4 shadow space-y-3 ${t}`, children: [
370
- /* @__PURE__ */ f.jsxs("div", { className: "space-y-1", children: [
371
- /* @__PURE__ */ f.jsx(
293
+ const s = ue(t), u = ie(t);
294
+ return /* @__PURE__ */ i.jsxs("div", { className: `rounded-lg border p-4 shadow space-y-3 ${n}`, children: [
295
+ /* @__PURE__ */ i.jsxs("div", { className: "space-y-1", children: [
296
+ /* @__PURE__ */ i.jsx(
372
297
  v,
373
298
  {
374
- ok: o.length,
299
+ ok: s.length,
375
300
  label: "8–14 characters",
376
- className: a
301
+ className: o
377
302
  }
378
303
  ),
379
- /* @__PURE__ */ f.jsx(
304
+ /* @__PURE__ */ i.jsx(
380
305
  v,
381
306
  {
382
- ok: o.lowercase,
307
+ ok: s.lowercase,
383
308
  label: "Lowercase letter",
384
- className: a
309
+ className: o
385
310
  }
386
311
  ),
387
- /* @__PURE__ */ f.jsx(
312
+ /* @__PURE__ */ i.jsx(
388
313
  v,
389
314
  {
390
- ok: o.uppercase,
315
+ ok: s.uppercase,
391
316
  label: "Uppercase letter",
392
- className: a
317
+ className: o
393
318
  }
394
319
  ),
395
- /* @__PURE__ */ f.jsx(v, { ok: o.number, label: "Number", className: a }),
396
- /* @__PURE__ */ f.jsx(v, { ok: o.symbol, label: "Symbol", className: a })
320
+ /* @__PURE__ */ i.jsx(v, { ok: s.number, label: "Number", className: o }),
321
+ /* @__PURE__ */ i.jsx(v, { ok: s.symbol, label: "Symbol", className: o })
397
322
  ] }),
398
- /* @__PURE__ */ f.jsx(xe, { strength: l, className: s }),
399
- /* @__PURE__ */ f.jsxs("div", { className: "text-sm font-medium capitalize text-gray-700", children: [
323
+ /* @__PURE__ */ i.jsx(fe, { strength: u, className: f }),
324
+ /* @__PURE__ */ i.jsxs("div", { className: "text-sm font-medium capitalize text-gray-700", children: [
400
325
  "Strength: ",
401
- l
326
+ u
402
327
  ] })
403
328
  ] });
404
329
  };
405
330
  export {
406
- ye as PasswordValidator,
407
- de as usePasswordValidation,
408
- fe as validatePassword
331
+ be as PasswordValidator,
332
+ ue as usePasswordValidation,
333
+ ce as validatePassword
409
334
  };
@@ -1,6 +1,6 @@
1
- (function(m,d){typeof exports=="object"&&typeof module<"u"?d(exports,require("react")):typeof define=="function"&&define.amd?define(["exports","react"],d):(m=typeof globalThis<"u"?globalThis:m||self,d(m.ReactPasswordValidator={},m.React))})(this,(function(m,d){"use strict";var R={exports:{}},v={};var O;function B(){if(O)return v;O=1;var r=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function a(s,o,l){var b=null;if(l!==void 0&&(b=""+l),o.key!==void 0&&(b=""+o.key),"key"in o){l={};for(var _ in o)_!=="key"&&(l[_]=o[_])}else l=o;return o=l.ref,{$$typeof:r,type:s,key:b,ref:o!==void 0?o:null,props:l}}return v.Fragment=t,v.jsx=a,v.jsxs=a,v}var E={};var C;function q(){return C||(C=1,process.env.NODE_ENV!=="production"&&(function(){function r(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===Ee?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case y:return"Fragment";case ie:return"Profiler";case ue:return"StrictMode";case be:return"Suspense";case _e:return"SuspenseList";case ve:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case ce:return"Portal";case de:return e.displayName||"Context";case fe:return(e._context.displayName||"Context")+".Consumer";case me:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case pe:return n=e.displayName||null,n!==null?n:r(e.type)||"Memo";case j:n=e._payload,e=e._init;try{return r(e(n))}catch{}}return null}function t(e){return""+e}function a(e){try{t(e);var n=!1}catch{n=!0}if(n){n=console;var c=n.error,u=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return c.call(n,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",u),t(e)}}function s(e){if(e===y)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===j)return"<...>";try{var n=r(e);return n?"<"+n+">":"<...>"}catch{return"<...>"}}function o(){var e=A.A;return e===null?null:e.getOwner()}function l(){return Error("react-stack-top-frame")}function b(e){if(W.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function _(e,n){function c(){z||(z=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",n))}c.isReactWarning=!0,Object.defineProperty(e,"key",{get:c,configurable:!0})}function T(){var e=r(this.type);return J[e]||(J[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function w(e,n,c,u,x,N){var i=c.ref;return e={$$typeof:V,type:e,key:n,props:c,_owner:u},(i!==void 0?i:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:T}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:x}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:N}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function g(e,n,c,u,x,N){var i=n.children;if(i!==void 0)if(u)if(he(i)){for(u=0;u<i.length;u++)D(i[u]);Object.freeze&&Object.freeze(i)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else D(i);if(W.call(n,"key")){i=r(e);var p=Object.keys(n).filter(function(Re){return Re!=="key"});u=0<p.length?"{key: someKey, "+p.join(": ..., ")+": ...}":"{key: someKey}",X[i+u]||(p=0<p.length?"{"+p.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
1
+ (function(d,m){typeof exports=="object"&&typeof module<"u"?m(exports,require("react"),require("lucide-react")):typeof define=="function"&&define.amd?define(["exports","react","lucide-react"],m):(d=typeof globalThis<"u"?globalThis:d||self,m(d.ReactPasswordValidator={},d.React,d.LucideReact))})(this,(function(d,m,w){"use strict";var T={exports:{}},E={};var A;function q(){if(A)return E;A=1;var t=Symbol.for("react.transitional.element"),n=Symbol.for("react.fragment");function o(f,s,u){var b=null;if(u!==void 0&&(b=""+u),s.key!==void 0&&(b=""+s.key),"key"in s){u={};for(var p in s)p!=="key"&&(u[p]=s[p])}else u=s;return s=u.ref,{$$typeof:t,type:f,key:b,ref:s!==void 0?s:null,props:u}}return E.Fragment=n,E.jsx=o,E.jsxs=o,E}var v={};var O;function J(){return O||(O=1,process.env.NODE_ENV!=="production"&&(function(){function t(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ue?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case g:return"Fragment";case re:return"Profiler";case ee:return"StrictMode";case oe:return"Suspense";case se:return"SuspenseList";case ce:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case K:return"Portal";case ne:return e.displayName||"Context";case te:return(e._context.displayName||"Context")+".Consumer";case ae:var r=e.render;return e=e.displayName,e||(e=r.displayName||r.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case le:return r=e.displayName||null,r!==null?r:t(e.type)||"Memo";case k:r=e._payload,e=e._init;try{return t(e(r))}catch{}}return null}function n(e){return""+e}function o(e){try{n(e);var r=!1}catch{r=!0}if(r){r=console;var a=r.error,l=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return a.call(r,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",l),n(e)}}function f(e){if(e===g)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===k)return"<...>";try{var r=t(e);return r?"<"+r+">":"<...>"}catch{return"<...>"}}function s(){var e=j.A;return e===null?null:e.getOwner()}function u(){return Error("react-stack-top-frame")}function b(e){if(L.call(e,"key")){var r=Object.getOwnPropertyDescriptor(e,"key").get;if(r&&r.isReactWarning)return!1}return e.key!==void 0}function p(e,r){function a(){M||(M=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",r))}a.isReactWarning=!0,Object.defineProperty(e,"key",{get:a,configurable:!0})}function H(){var e=t(this.type);return V[e]||(V[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function Q(e,r,a,l,x,P){var c=a.ref;return e={$$typeof:D,type:e,key:r,props:a,_owner:l},(c!==void 0?c:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:H}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:x}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:P}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function $(e,r,a,l,x,P){var c=r.children;if(c!==void 0)if(l)if(ie(c)){for(l=0;l<c.length;l++)I(c[l]);Object.freeze&&Object.freeze(c)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else I(c);if(L.call(r,"key")){c=t(e);var _=Object.keys(r).filter(function(fe){return fe!=="key"});l=0<_.length?"{key: someKey, "+_.join(": ..., ")+": ...}":"{key: someKey}",W[c+l]||(_=0<_.length?"{"+_.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
2
2
  let props = %s;
3
3
  <%s {...props} />
4
4
  React keys must be passed directly to JSX without using spread:
5
5
  let props = %s;
6
- <%s key={someKey} {...props} />`,u,i,p,i),X[i+u]=!0)}if(i=null,c!==void 0&&(a(c),i=""+c),b(n)&&(a(n.key),i=""+n.key),"key"in n){c={};for(var S in n)S!=="key"&&(c[S]=n[S])}else c=n;return i&&_(c,typeof e=="function"?e.displayName||e.name||"Unknown":e),w(e,i,c,o(),x,N)}function D(e){U(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===j&&(e._payload.status==="fulfilled"?U(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function U(e){return typeof e=="object"&&e!==null&&e.$$typeof===V}var k=d,V=Symbol.for("react.transitional.element"),ce=Symbol.for("react.portal"),y=Symbol.for("react.fragment"),ue=Symbol.for("react.strict_mode"),ie=Symbol.for("react.profiler"),fe=Symbol.for("react.consumer"),de=Symbol.for("react.context"),me=Symbol.for("react.forward_ref"),be=Symbol.for("react.suspense"),_e=Symbol.for("react.suspense_list"),pe=Symbol.for("react.memo"),j=Symbol.for("react.lazy"),ve=Symbol.for("react.activity"),Ee=Symbol.for("react.client.reference"),A=k.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,W=Object.prototype.hasOwnProperty,he=Array.isArray,P=console.createTask?console.createTask:function(){return null};k={react_stack_bottom_frame:function(e){return e()}};var z,J={},Z=k.react_stack_bottom_frame.bind(k,l)(),G=P(s(l)),X={};E.Fragment=y,E.jsx=function(e,n,c){var u=1e4>A.recentlyCreatedOwnerStacks++;return g(e,n,c,!1,u?Error("react-stack-top-frame"):Z,u?P(s(e)):G)},E.jsxs=function(e,n,c){var u=1e4>A.recentlyCreatedOwnerStacks++;return g(e,n,c,!0,u?Error("react-stack-top-frame"):Z,u?P(s(e)):G)}})()),E}var Y;function H(){return Y||(Y=1,process.env.NODE_ENV==="production"?R.exports=B():R.exports=q()),R.exports}var f=H();const I=r=>{const t=r.length>=8&&r.length<=14,a=/[a-z]/.test(r),s=/[A-Z]/.test(r),o=/[0-9]/.test(r),l=/[^A-Za-z0-9]/.test(r);return{length:t,lowercase:a,uppercase:s,number:o,symbol:l,valid:t&&a&&s&&o&&l}},L=r=>d.useMemo(()=>I(r),[r]);const M=(...r)=>r.filter((t,a,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===a).join(" ").trim();const Q=r=>r.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();const K=r=>r.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,a,s)=>s?s.toUpperCase():a.toLowerCase());const F=r=>{const t=K(r);return t.charAt(0).toUpperCase()+t.slice(1)};var ee={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const re=r=>{for(const t in r)if(t.startsWith("aria-")||t==="role"||t==="title")return!0;return!1};const te=d.forwardRef(({color:r="currentColor",size:t=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:o="",children:l,iconNode:b,..._},T)=>d.createElement("svg",{ref:T,...ee,width:t,height:t,stroke:r,strokeWidth:s?Number(a)*24/Number(t):a,className:M("lucide",o),...!l&&!re(_)&&{"aria-hidden":"true"},..._},[...b.map(([w,g])=>d.createElement(w,g)),...Array.isArray(l)?l:[l]]));const $=(r,t)=>{const a=d.forwardRef(({className:s,...o},l)=>d.createElement(te,{ref:l,iconNode:t,className:M(`lucide-${Q(F(r))}`,`lucide-${r}`,s),...o}));return a.displayName=F(r),a};const ne=$("check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const ae=$("x",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),oe=r=>{let t=0;return r.length>=2&&(t+=1),/[a-z]/.test(r)&&(t+=1),/[A-Z]/.test(r)&&(t+=1),/[0-9]/.test(r)&&(t+=1),/[^A-Za-z0-9]/.test(r)&&(t+=1),t<=2?"weak":t===3||t===4?"medium":"strong"},h=({ok:r,label:t,className:a=""})=>f.jsxs("div",{className:`flex items-center gap-2 text-sm ${a}`,children:[r?f.jsx(ne,{className:"w-4 h-4 text-green-600"}):f.jsx(ae,{className:"w-4 h-4 text-red-500"}),f.jsx("span",{className:r?"text-green-600":"text-gray-500",children:t})]}),se=({strength:r,className:t=""})=>{let a="bg-red-500",s="w-1/4";return r==="medium"?(a="bg-yellow-400",s="w-2/3"):r==="strong"&&(a="bg-green-600",s="w-full"),f.jsx("div",{className:`h-2 bg-gray-200 rounded-full mt-2 ${t}`,children:f.jsx("div",{className:`${s} ${a} h-2 rounded-full transition-all`})})},le=({password:r,className:t="",itemClassName:a="",strengthBarClassName:s=""})=>{const o=L(r),l=oe(r);return f.jsxs("div",{className:`rounded-lg border p-4 shadow space-y-3 ${t}`,children:[f.jsxs("div",{className:"space-y-1",children:[f.jsx(h,{ok:o.length,label:"8–14 characters",className:a}),f.jsx(h,{ok:o.lowercase,label:"Lowercase letter",className:a}),f.jsx(h,{ok:o.uppercase,label:"Uppercase letter",className:a}),f.jsx(h,{ok:o.number,label:"Number",className:a}),f.jsx(h,{ok:o.symbol,label:"Symbol",className:a})]}),f.jsx(se,{strength:l,className:s}),f.jsxs("div",{className:"text-sm font-medium capitalize text-gray-700",children:["Strength: ",l]})]})};m.PasswordValidator=le,m.usePasswordValidation=L,m.validatePassword=I,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})}));
6
+ <%s key={someKey} {...props} />`,l,c,_,c),W[c+l]=!0)}if(c=null,a!==void 0&&(o(a),c=""+a),b(r)&&(o(r.key),c=""+r.key),"key"in r){a={};for(var S in r)S!=="key"&&(a[S]=r[S])}else a=r;return c&&p(a,typeof e=="function"?e.displayName||e.name||"Unknown":e),Q(e,c,a,s(),x,P)}function I(e){F(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===k&&(e._payload.status==="fulfilled"?F(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function F(e){return typeof e=="object"&&e!==null&&e.$$typeof===D}var h=m,D=Symbol.for("react.transitional.element"),K=Symbol.for("react.portal"),g=Symbol.for("react.fragment"),ee=Symbol.for("react.strict_mode"),re=Symbol.for("react.profiler"),te=Symbol.for("react.consumer"),ne=Symbol.for("react.context"),ae=Symbol.for("react.forward_ref"),oe=Symbol.for("react.suspense"),se=Symbol.for("react.suspense_list"),le=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),ce=Symbol.for("react.activity"),ue=Symbol.for("react.client.reference"),j=h.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,L=Object.prototype.hasOwnProperty,ie=Array.isArray,y=console.createTask?console.createTask:function(){return null};h={react_stack_bottom_frame:function(e){return e()}};var M,V={},z=h.react_stack_bottom_frame.bind(h,u)(),U=y(f(u)),W={};v.Fragment=g,v.jsx=function(e,r,a){var l=1e4>j.recentlyCreatedOwnerStacks++;return $(e,r,a,!1,l?Error("react-stack-top-frame"):z,l?y(f(e)):U)},v.jsxs=function(e,r,a){var l=1e4>j.recentlyCreatedOwnerStacks++;return $(e,r,a,!0,l?Error("react-stack-top-frame"):z,l?y(f(e)):U)}})()),v}var N;function G(){return N||(N=1,process.env.NODE_ENV==="production"?T.exports=q():T.exports=J()),T.exports}var i=G();const C=t=>{const n=t.length>=8&&t.length<=14,o=/[a-z]/.test(t),f=/[A-Z]/.test(t),s=/[0-9]/.test(t),u=/[^A-Za-z0-9]/.test(t);return{length:n,lowercase:o,uppercase:f,number:s,symbol:u,valid:n&&o&&f&&s&&u}},Y=t=>m.useMemo(()=>C(t),[t]),X=t=>{let n=0;return t.length>=2&&(n+=1),/[a-z]/.test(t)&&(n+=1),/[A-Z]/.test(t)&&(n+=1),/[0-9]/.test(t)&&(n+=1),/[^A-Za-z0-9]/.test(t)&&(n+=1),n<=2?"weak":n===3||n===4?"medium":"strong"},R=({ok:t,label:n,className:o=""})=>i.jsxs("div",{className:`flex items-center gap-2 text-sm ${o}`,children:[t?i.jsx(w.Check,{className:"w-4 h-4 text-green-600"}):i.jsx(w.X,{className:"w-4 h-4 text-red-500"}),i.jsx("span",{className:t?"text-green-600":"text-gray-500",children:n})]}),Z=({strength:t,className:n=""})=>{let o="bg-red-500",f="w-1/4";return t==="medium"?(o="bg-yellow-400",f="w-2/3"):t==="strong"&&(o="bg-green-600",f="w-full"),i.jsx("div",{className:`h-2 bg-gray-200 rounded-full mt-2 ${n}`,children:i.jsx("div",{className:`${f} ${o} h-2 rounded-full transition-all`})})},B=({password:t,className:n="",itemClassName:o="",strengthBarClassName:f=""})=>{const s=Y(t),u=X(t);return i.jsxs("div",{className:`rounded-lg border p-4 shadow space-y-3 ${n}`,children:[i.jsxs("div",{className:"space-y-1",children:[i.jsx(R,{ok:s.length,label:"8–14 characters",className:o}),i.jsx(R,{ok:s.lowercase,label:"Lowercase letter",className:o}),i.jsx(R,{ok:s.uppercase,label:"Uppercase letter",className:o}),i.jsx(R,{ok:s.number,label:"Number",className:o}),i.jsx(R,{ok:s.symbol,label:"Symbol",className:o})]}),i.jsx(Z,{strength:u,className:f}),i.jsxs("div",{className:"text-sm font-medium capitalize text-gray-700",children:["Strength: ",u]})]})};d.PasswordValidator=B,d.usePasswordValidation=Y,d.validatePassword=C,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shafnas/react-password-validator",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "A reusable React password validator component with Tailwind and Lucide icons",
5
5
  "author": "Your Name",
6
6
  "license": "MIT",