ribaunt 0.1.1 → 0.1.3
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/cjs/index.cjs +32 -7
- package/dist/cjs/index.d.ts +59 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +340 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/solver.d.ts +2 -2
- package/dist/cjs/solver.d.ts.map +1 -1
- package/dist/cjs/solver.js +30 -24
- package/dist/cjs/solver.js.map +1 -1
- package/dist/cjs/widget-react.d.ts +2 -0
- package/dist/cjs/widget-react.d.ts.map +1 -1
- package/dist/cjs/widget-react.js +38 -12
- package/dist/cjs/widget-react.js.map +1 -1
- package/dist/cjs/widget.d.ts +6 -0
- package/dist/cjs/widget.d.ts.map +1 -1
- package/dist/cjs/widget.js +114 -22
- package/dist/cjs/widget.js.map +1 -1
- package/dist/index.d.ts +30 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +194 -31
- package/dist/index.js.map +1 -1
- package/dist/solver.d.ts +2 -2
- package/dist/solver.d.ts.map +1 -1
- package/dist/solver.js +30 -24
- package/dist/solver.js.map +1 -1
- package/dist/widget-react.d.ts +2 -0
- package/dist/widget-react.d.ts.map +1 -1
- package/dist/widget-react.js +38 -12
- package/dist/widget-react.js.map +1 -1
- package/dist/widget.d.ts +6 -0
- package/dist/widget.d.ts.map +1 -1
- package/dist/widget.js +114 -22
- package/dist/widget.js.map +1 -1
- package/package.json +10 -7
- package/scripts/prepare-cjs.mjs +11 -0
package/dist/widget.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAmLH,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAwCrE,qBAAa,aAAc,SAAQ,WAAW;IAC5C,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,KAAK,CAA0B;IACvC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAAkC;IAErD,MAAM,KAAK,kBAAkB,aAS5B;;IAUD,iBAAiB;IAKjB,oBAAoB;IAIpB,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvF,OAAO,CAAC,MAAM;IAyCd,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,WAAW;YAYL,MAAM;IAkFpB;;OAEG;IACH,KAAK;IAML;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;IACH,iBAAiB;CAKlB;AAED,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,KAAK,IAAI,IAAI,CAAC;IACd,QAAQ,IAAI,WAAW,CAAC;IACxB,iBAAiB,IAAI,IAAI,CAAC;CAC3B;AAQD,eAAe,aAAa,CAAC;AAG7B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,oBAAoB,CAAC;KACxC;IAED,UAAU,GAAG,CAAC;QACZ,UAAU,iBAAiB;YACzB,gBAAgB,EAAE,OAAO,OAAO,EAAE,iBAAiB,CAAC,OAAO,OAAO,EAAE,cAAc,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC,GAAG;gBAChI,oBAAoB,CAAC,EAAE,MAAM,CAAC;gBAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;gBAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;gBAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;gBACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;aAC7B,CAAC;SACH;KACF;CACF"}
|
package/dist/widget.js
CHANGED
|
@@ -51,6 +51,23 @@ const WIDGET_STYLES = `
|
|
|
51
51
|
color: var(--ribaunt-color, #212121);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
:host([disabled]) .captcha {
|
|
55
|
+
cursor: not-allowed;
|
|
56
|
+
opacity: 0.72;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
:host([disabled]) .captcha:hover {
|
|
60
|
+
filter: none;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
:host([disabled]) .captcha[data-state=verifying] {
|
|
64
|
+
cursor: progress;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
:host([disabled]) .captcha[data-state=done] {
|
|
68
|
+
cursor: default;
|
|
69
|
+
}
|
|
70
|
+
|
|
54
71
|
.captcha:hover {
|
|
55
72
|
filter: brightness(98%);
|
|
56
73
|
}
|
|
@@ -125,19 +142,6 @@ const WIDGET_STYLES = `
|
|
|
125
142
|
background-size: cover;
|
|
126
143
|
}
|
|
127
144
|
|
|
128
|
-
/* Disabled State */
|
|
129
|
-
.captcha[disabled] {
|
|
130
|
-
cursor: not-allowed;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.captcha[disabled][data-state=verifying] {
|
|
134
|
-
cursor: progress;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.captcha[disabled][data-state=done] {
|
|
138
|
-
cursor: default;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
145
|
/* Logo */
|
|
142
146
|
.logo {
|
|
143
147
|
position: absolute;
|
|
@@ -194,6 +198,34 @@ const RIBAUNT_LOGO = `
|
|
|
194
198
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M236.619 122.188L341.575 383.702H209.913L170.796 286.199L131.663 383.702H0L104.957 122.188H236.619Z" fill="currentColor"/>
|
|
195
199
|
</svg>
|
|
196
200
|
`;
|
|
201
|
+
function parseTokenArray(value) {
|
|
202
|
+
if (!Array.isArray(value)) {
|
|
203
|
+
throw new Error('Challenge response must be an array of token strings');
|
|
204
|
+
}
|
|
205
|
+
if (value.length === 0) {
|
|
206
|
+
throw new Error('No challenge tokens available');
|
|
207
|
+
}
|
|
208
|
+
if (!value.every((entry) => typeof entry === 'string' && entry.length > 0)) {
|
|
209
|
+
throw new Error('Challenge response contains invalid token values');
|
|
210
|
+
}
|
|
211
|
+
return value;
|
|
212
|
+
}
|
|
213
|
+
function parseChallengeTokens(payload) {
|
|
214
|
+
if (Array.isArray(payload)) {
|
|
215
|
+
return parseTokenArray(payload);
|
|
216
|
+
}
|
|
217
|
+
if (!payload || typeof payload !== 'object') {
|
|
218
|
+
throw new Error('Challenge response must be an object or array of token strings');
|
|
219
|
+
}
|
|
220
|
+
const record = payload;
|
|
221
|
+
if ('challenges' in record) {
|
|
222
|
+
return parseTokenArray(record.challenges);
|
|
223
|
+
}
|
|
224
|
+
if ('tokens' in record) {
|
|
225
|
+
return parseTokenArray(record.tokens);
|
|
226
|
+
}
|
|
227
|
+
throw new Error('Challenge response must include "challenges" or "tokens"');
|
|
228
|
+
}
|
|
197
229
|
export class RibauntWidget extends HTMLElement {
|
|
198
230
|
static get observedAttributes() {
|
|
199
231
|
return [
|
|
@@ -201,6 +233,7 @@ export class RibauntWidget extends HTMLElement {
|
|
|
201
233
|
'verify-endpoint',
|
|
202
234
|
'show-warning',
|
|
203
235
|
'warning-message',
|
|
236
|
+
'solve-timeout',
|
|
204
237
|
'disabled',
|
|
205
238
|
];
|
|
206
239
|
}
|
|
@@ -208,17 +241,19 @@ export class RibauntWidget extends HTMLElement {
|
|
|
208
241
|
super();
|
|
209
242
|
this.state = 'initial';
|
|
210
243
|
this.progress = 0;
|
|
244
|
+
this.timeoutError = false;
|
|
211
245
|
this.captchaElement = null;
|
|
212
246
|
this.checkboxElement = null;
|
|
213
247
|
this.messageElement = null;
|
|
214
248
|
this.warningElement = null;
|
|
249
|
+
this.logoElement = null;
|
|
215
250
|
this.shadow = this.attachShadow({ mode: 'open' });
|
|
216
251
|
this.handleClick = this.handleClick.bind(this);
|
|
217
252
|
this.handleKeyPress = this.handleKeyPress.bind(this);
|
|
253
|
+
this.handleLogoClick = this.handleLogoClick.bind(this);
|
|
218
254
|
}
|
|
219
255
|
connectedCallback() {
|
|
220
256
|
this.render();
|
|
221
|
-
this.attachEventListeners();
|
|
222
257
|
this.dispatchStateChange();
|
|
223
258
|
}
|
|
224
259
|
disconnectedCallback() {
|
|
@@ -230,13 +265,15 @@ export class RibauntWidget extends HTMLElement {
|
|
|
230
265
|
}
|
|
231
266
|
}
|
|
232
267
|
render() {
|
|
268
|
+
this.removeEventListeners();
|
|
233
269
|
const showWarning = this.hasAttribute('show-warning') && this.getAttribute('show-warning') !== 'false';
|
|
234
270
|
const warningMessage = this.getAttribute('warning-message') || 'Enable WASM for significantly faster solving';
|
|
271
|
+
const disabled = this.isDisabled();
|
|
235
272
|
this.shadow.innerHTML = `
|
|
236
273
|
<style>${WIDGET_STYLES}</style>
|
|
237
274
|
<div>
|
|
238
|
-
${showWarning ? `<div class="warning
|
|
239
|
-
<div class="captcha" data-state="${this.state}" role="button" tabindex="0" aria-label="${this.getMessage()}">
|
|
275
|
+
${showWarning ? `<div class="warning">${warningMessage}</div>` : ''}
|
|
276
|
+
<div class="captcha" data-state="${this.state}" role="button" tabindex="${disabled ? '-1' : '0'}" aria-disabled="${disabled}" aria-label="${this.getMessage()}">
|
|
240
277
|
<div class="checkbox"></div>
|
|
241
278
|
<p>${this.getMessage()}</p>
|
|
242
279
|
<a class="logo" href="https://ribaunt.com" target="_blank" rel="noopener noreferrer" aria-label="Powered by Ribaunt">
|
|
@@ -249,6 +286,12 @@ export class RibauntWidget extends HTMLElement {
|
|
|
249
286
|
this.checkboxElement = this.shadow.querySelector('.checkbox');
|
|
250
287
|
this.messageElement = this.shadow.querySelector('p');
|
|
251
288
|
this.warningElement = this.shadow.querySelector('.warning');
|
|
289
|
+
this.logoElement = this.shadow.querySelector('.logo');
|
|
290
|
+
if (showWarning && this.warningElement) {
|
|
291
|
+
setTimeout(() => {
|
|
292
|
+
this.warningElement?.classList.add('visible');
|
|
293
|
+
}, 0);
|
|
294
|
+
}
|
|
252
295
|
// Update progress CSS variable if verifying
|
|
253
296
|
if (this.state === 'verifying' && this.captchaElement) {
|
|
254
297
|
this.captchaElement.style.setProperty('--progress', `${this.progress}%`);
|
|
@@ -260,14 +303,25 @@ export class RibauntWidget extends HTMLElement {
|
|
|
260
303
|
this.captchaElement.addEventListener('click', this.handleClick);
|
|
261
304
|
this.captchaElement.addEventListener('keypress', this.handleKeyPress);
|
|
262
305
|
}
|
|
306
|
+
if (this.logoElement) {
|
|
307
|
+
this.logoElement.addEventListener('click', this.handleLogoClick);
|
|
308
|
+
}
|
|
263
309
|
}
|
|
264
310
|
removeEventListeners() {
|
|
265
311
|
if (this.captchaElement) {
|
|
266
312
|
this.captchaElement.removeEventListener('click', this.handleClick);
|
|
267
313
|
this.captchaElement.removeEventListener('keypress', this.handleKeyPress);
|
|
268
314
|
}
|
|
315
|
+
if (this.logoElement) {
|
|
316
|
+
this.logoElement.removeEventListener('click', this.handleLogoClick);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
handleLogoClick(event) {
|
|
320
|
+
event.stopPropagation();
|
|
269
321
|
}
|
|
270
322
|
handleClick() {
|
|
323
|
+
if (this.isDisabled())
|
|
324
|
+
return;
|
|
271
325
|
if (this.state !== 'initial' && this.state !== 'error')
|
|
272
326
|
return;
|
|
273
327
|
this.verify();
|
|
@@ -287,14 +341,33 @@ export class RibauntWidget extends HTMLElement {
|
|
|
287
341
|
case 'done':
|
|
288
342
|
return "You're a human";
|
|
289
343
|
case 'error':
|
|
290
|
-
return 'Error. Try again.';
|
|
344
|
+
return this.timeoutError ? 'Timed out. Try again.' : 'Error. Try again.';
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
getSolveTimeoutMs() {
|
|
348
|
+
const raw = this.getAttribute('solve-timeout');
|
|
349
|
+
if (!raw) {
|
|
350
|
+
return undefined;
|
|
291
351
|
}
|
|
352
|
+
const value = Number(raw);
|
|
353
|
+
if (!Number.isFinite(value) || value <= 0) {
|
|
354
|
+
return undefined;
|
|
355
|
+
}
|
|
356
|
+
return Math.floor(value);
|
|
357
|
+
}
|
|
358
|
+
isDisabled() {
|
|
359
|
+
return this.hasAttribute('disabled') && this.getAttribute('disabled') !== 'false';
|
|
292
360
|
}
|
|
293
361
|
setState(newState) {
|
|
362
|
+
if (newState !== 'error') {
|
|
363
|
+
this.timeoutError = false;
|
|
364
|
+
}
|
|
294
365
|
this.state = newState;
|
|
295
366
|
if (this.captchaElement) {
|
|
296
367
|
this.captchaElement.setAttribute('data-state', this.state);
|
|
297
368
|
this.captchaElement.setAttribute('aria-label', this.getMessage());
|
|
369
|
+
this.captchaElement.tabIndex = this.isDisabled() ? -1 : 0;
|
|
370
|
+
this.captchaElement.setAttribute('aria-disabled', String(this.isDisabled()));
|
|
298
371
|
}
|
|
299
372
|
if (this.messageElement) {
|
|
300
373
|
this.messageElement.textContent = this.getMessage();
|
|
@@ -323,6 +396,13 @@ export class RibauntWidget extends HTMLElement {
|
|
|
323
396
|
async verify() {
|
|
324
397
|
this.setState('verifying');
|
|
325
398
|
this.setProgress(0);
|
|
399
|
+
const timeoutMs = this.getSolveTimeoutMs();
|
|
400
|
+
const controller = timeoutMs ? new AbortController() : undefined;
|
|
401
|
+
const timeoutHandle = timeoutMs
|
|
402
|
+
? setTimeout(() => {
|
|
403
|
+
controller?.abort();
|
|
404
|
+
}, timeoutMs)
|
|
405
|
+
: undefined;
|
|
326
406
|
try {
|
|
327
407
|
const challengeEndpoint = this.getAttribute('challenge-endpoint');
|
|
328
408
|
const verifyEndpoint = this.getAttribute('verify-endpoint');
|
|
@@ -333,15 +413,15 @@ export class RibauntWidget extends HTMLElement {
|
|
|
333
413
|
if (!response.ok)
|
|
334
414
|
throw new Error('Failed to fetch challenge');
|
|
335
415
|
const data = await response.json();
|
|
336
|
-
tokens = data
|
|
416
|
+
tokens = parseChallengeTokens(data);
|
|
337
417
|
}
|
|
338
|
-
if (
|
|
418
|
+
if (tokens.length === 0) {
|
|
339
419
|
throw new Error('No challenge tokens available');
|
|
340
420
|
}
|
|
341
421
|
// Solve challenges using the browser-compatible solver
|
|
342
422
|
const solutions = await solveChallenge(tokens, (progress) => {
|
|
343
423
|
this.setProgress(progress);
|
|
344
|
-
});
|
|
424
|
+
}, controller?.signal);
|
|
345
425
|
// Verify solution
|
|
346
426
|
if (verifyEndpoint) {
|
|
347
427
|
const response = await fetch(verifyEndpoint, {
|
|
@@ -362,19 +442,31 @@ export class RibauntWidget extends HTMLElement {
|
|
|
362
442
|
}));
|
|
363
443
|
}
|
|
364
444
|
catch (error) {
|
|
445
|
+
this.timeoutError = error instanceof DOMException && error.name === 'AbortError';
|
|
365
446
|
this.setState('error');
|
|
366
447
|
// Dispatch error event
|
|
367
448
|
this.dispatchEvent(new CustomEvent('error', {
|
|
368
|
-
detail: {
|
|
449
|
+
detail: {
|
|
450
|
+
error: this.timeoutError
|
|
451
|
+
? 'Timed out. Try again.'
|
|
452
|
+
: (error instanceof Error ? error.message : String(error)),
|
|
453
|
+
timeout: this.timeoutError,
|
|
454
|
+
},
|
|
369
455
|
bubbles: true,
|
|
370
456
|
composed: true,
|
|
371
457
|
}));
|
|
372
458
|
}
|
|
459
|
+
finally {
|
|
460
|
+
if (timeoutHandle !== undefined) {
|
|
461
|
+
clearTimeout(timeoutHandle);
|
|
462
|
+
}
|
|
463
|
+
}
|
|
373
464
|
}
|
|
374
465
|
/**
|
|
375
466
|
* Public API: Reset the widget to initial state
|
|
376
467
|
*/
|
|
377
468
|
reset() {
|
|
469
|
+
this.timeoutError = false;
|
|
378
470
|
this.setState('initial');
|
|
379
471
|
this.setProgress(0);
|
|
380
472
|
}
|
|
@@ -388,7 +480,7 @@ export class RibauntWidget extends HTMLElement {
|
|
|
388
480
|
* Public API: Programmatically trigger verification
|
|
389
481
|
*/
|
|
390
482
|
startVerification() {
|
|
391
|
-
if (this.state === 'initial' || this.state === 'error') {
|
|
483
|
+
if (!this.isDisabled() && (this.state === 'initial' || this.state === 'error')) {
|
|
392
484
|
this.verify();
|
|
393
485
|
}
|
|
394
486
|
}
|
package/dist/widget.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,cAAc,EAA0B,MAAM,aAAa,CAAC;AAErE,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../src/widget.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ribaunt",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "A PoW CAPTCHA library that provides stateless and secure user verification",
|
|
5
5
|
"homepage": "https://ribaunt.com",
|
|
6
6
|
"bugs": {
|
|
7
|
-
"url": "https://github.com/
|
|
7
|
+
"url": "https://github.com/ribaunt/ribaunt/issues"
|
|
8
8
|
},
|
|
9
|
-
"main": "dist/cjs/index.
|
|
9
|
+
"main": "dist/cjs/index.js",
|
|
10
10
|
"types": "dist/index.d.ts",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
13
14
|
"import": "./dist/index.js",
|
|
14
|
-
"require": "./dist/cjs/index.
|
|
15
|
+
"require": "./dist/cjs/index.js"
|
|
15
16
|
},
|
|
16
17
|
"./widget": {
|
|
17
18
|
"client": "./dist/widget-browser.js",
|
|
@@ -26,13 +27,13 @@
|
|
|
26
27
|
},
|
|
27
28
|
"repository": {
|
|
28
29
|
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/
|
|
30
|
+
"url": "git+https://github.com/ribaunt/ribaunt.git"
|
|
30
31
|
},
|
|
31
32
|
"license": "EUPL-1.2",
|
|
32
|
-
"author": "
|
|
33
|
+
"author": "ribaunt",
|
|
33
34
|
"type": "module",
|
|
34
35
|
"scripts": {
|
|
35
|
-
"build": "tsc && tsc --project tsconfig.cjs.json &&
|
|
36
|
+
"build": "tsc && tsc --project tsconfig.cjs.json && node scripts/prepare-cjs.mjs",
|
|
36
37
|
"test": "jest --config jest.config.cjs"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
@@ -43,6 +44,8 @@
|
|
|
43
44
|
"@types/react-dom": "^19.2.3",
|
|
44
45
|
"dotenv": "^17.2.3",
|
|
45
46
|
"jest": "^30.2.0",
|
|
47
|
+
"jest-environment-jsdom": "^30.3.0",
|
|
48
|
+
"jsdom": "^27.0.1",
|
|
46
49
|
"react": "^19.2.4",
|
|
47
50
|
"react-dom": "^19.2.4",
|
|
48
51
|
"ts-jest": "^29.4.6",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { mkdir, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
|
|
4
|
+
const cjsDir = resolve(process.cwd(), 'dist/cjs');
|
|
5
|
+
|
|
6
|
+
await mkdir(cjsDir, { recursive: true });
|
|
7
|
+
await writeFile(
|
|
8
|
+
resolve(cjsDir, 'package.json'),
|
|
9
|
+
`${JSON.stringify({ type: 'commonjs' }, null, 2)}\n`,
|
|
10
|
+
'utf8'
|
|
11
|
+
);
|