twd-js 1.8.0 → 1.8.1

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/mock-sw.js CHANGED
@@ -1,4 +1,4 @@
1
- (function(){var d=t=>{try{return new RegExp(t),!0}catch{return!1}},f=new Set(["js","mjs","cjs","ts","tsx","jsx","mts","cts","css","scss","sass","less","styl","html","htm","xml","xhtml","vue","svelte","json","yaml","yml","toml","csv","txt","md","mdx","pdf","doc","docx","png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","woff","woff2","ttf","eot","otf","mp3","mp4","webm","ogg","wav","zip","tar","gz","rar","map"]),c=t=>{const s=t.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return s?f.has(s[1].toLowerCase()):!1},h=(t,s)=>{const i=t.indexOf(s);if(i===-1)return!1;const e=i+s.length,a=t[e];if(a===void 0)return!0;const n=t.indexOf("?");return n!==-1&&e>n?!0:"?#&".includes(a)};function m(t,s,i){return i.find(e=>{const a=e.method.toLowerCase()===t.toLowerCase();if(e.urlRegex&&d(e.url)){const l=new RegExp(e.url);return a&&l.test(s)}if(c(e.url))return a&&s.includes(e.url);const n=e.url===s||h(s,e.url);return a&&n&&!c(s)})}function p(t,s,i,e){t.forEach(a=>a.postMessage({type:"EXECUTED",alias:s.alias,request:i,hitCount:e}))}var y=(t,s,i)=>{const e=![204,205,304].includes(s),a=e?JSON.stringify(t):null;return new Response(a,{status:s,headers:e?i||{"Content-Type":"application/json"}:i||{}})},u="1.8.0",r=[],o={},g=async t=>{const{method:s}=t.request,i=t.request.url,e=m(s,i,r);e&&(console.log("[TWD] Mock hit:",e.alias,s,i),t.respondWith((async()=>{let a=null;const n=t.request.headers.get("content-type")||"application/json";if(n.includes("application/json"))try{a=await t.request.clone().json()}catch{}else if(n.includes("form"))try{const l=await t.request.clone().formData();a={},l.forEach((x,E)=>{a[E]=x})}catch{}else if(n.includes("text"))try{a=await t.request.clone().text()}catch{}else if(n.includes("octet-stream"))try{a=await t.request.clone().arrayBuffer()}catch{}else if(n.includes("image"))try{a=await t.request.clone().blob()}catch{}else try{a=await t.request.clone().text()}catch{}return o[e.alias]||(o[e.alias]=0),o[e.alias]++,p(await self.clients.matchAll(),e,a,o[e.alias]),e.delay&&e.delay>0&&await new Promise(l=>setTimeout(l,e.delay)),y(e.response,e.status??200,e.responseHeaders)})()))},w=t=>{t!=="1.8.0"&&console.warn(`[TWD] ⚠️ Version mismatch detected:
1
+ (function(){var d=t=>{try{return new RegExp(t),!0}catch{return!1}},f=new Set(["js","mjs","cjs","ts","tsx","jsx","mts","cts","css","scss","sass","less","styl","html","htm","xml","xhtml","vue","svelte","json","yaml","yml","toml","csv","txt","md","mdx","pdf","doc","docx","png","jpg","jpeg","gif","svg","webp","ico","bmp","avif","woff","woff2","ttf","eot","otf","mp3","mp4","webm","ogg","wav","zip","tar","gz","rar","map"]),c=t=>{const s=t.split("?")[0].match(/\.([a-zA-Z0-9]+)$/);return s?f.has(s[1].toLowerCase()):!1},h=(t,s)=>{const i=t.indexOf(s);if(i===-1)return!1;const e=i+s.length,a=t[e];if(a===void 0)return!0;const n=t.indexOf("?");return n!==-1&&e>n?!0:"?#&".includes(a)};function m(t,s,i){return i.find(e=>{const a=e.method.toLowerCase()===t.toLowerCase();if(e.urlRegex&&d(e.url)){const l=new RegExp(e.url);return a&&l.test(s)}if(c(e.url))return a&&s.includes(e.url);const n=e.url===s||h(s,e.url);return a&&n&&!c(s)})}function p(t,s,i,e){t.forEach(a=>a.postMessage({type:"EXECUTED",alias:s.alias,request:i,hitCount:e}))}var y=(t,s,i)=>{const e=![204,205,304].includes(s),a=e?JSON.stringify(t):null;return new Response(a,{status:s,headers:e?i||{"Content-Type":"application/json"}:i||{}})},u="1.8.1",r=[],o={},g=async t=>{const{method:s}=t.request,i=t.request.url,e=m(s,i,r);e&&(console.log("[TWD] Mock hit:",e.alias,s,i),t.respondWith((async()=>{let a=null;const n=t.request.headers.get("content-type")||"application/json";if(n.includes("application/json"))try{a=await t.request.clone().json()}catch{}else if(n.includes("form"))try{const l=await t.request.clone().formData();a={},l.forEach((x,E)=>{a[E]=x})}catch{}else if(n.includes("text"))try{a=await t.request.clone().text()}catch{}else if(n.includes("octet-stream"))try{a=await t.request.clone().arrayBuffer()}catch{}else if(n.includes("image"))try{a=await t.request.clone().blob()}catch{}else try{a=await t.request.clone().text()}catch{}return o[e.alias]||(o[e.alias]=0),o[e.alias]++,p(await self.clients.matchAll(),e,a,o[e.alias]),e.delay&&e.delay>0&&await new Promise(l=>setTimeout(l,e.delay)),y(e.response,e.status??200,e.responseHeaders)})()))},w=t=>{t!=="1.8.1"&&console.warn(`[TWD] ⚠️ Version mismatch detected:
2
2
  Client version: ${t}
3
3
  Service Worker version: ${u}
4
4
 
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./runner-Dr_mUWED.cjs");exports.TestRunner=e.TestRunner;exports.afterEach=e.afterEach;exports.beforeEach=e.beforeEach;exports.clearTests=e.clearTests;exports.describe=e.describe;exports.handlers=e.handlers;exports.it=e.it;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./runner-ClPPXm0J.cjs");exports.TestRunner=e.TestRunner;exports.afterEach=e.afterEach;exports.beforeEach=e.beforeEach;exports.clearTests=e.clearTests;exports.describe=e.describe;exports.handlers=e.handlers;exports.it=e.it;
package/dist/runner.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { a as s, i as e, n as r, o as t, r as o, s as c, t as i } from "./runner-BmEWmCyd.js";
1
+ import { a as s, i as e, n as r, o as t, r as o, s as c, t as i } from "./runner-8uKtUFnx.js";
2
2
  export {
3
3
  i as TestRunner,
4
4
  r as afterEach,
package/dist/ui.cjs.js CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./componentMocks-CwMyWCu5.cjs"),u=require("./index.cjs.js");let t=require("react/jsx-runtime");function c({name:r,children:e}){const o=n.getMockForComponent(r);return o?(0,t.jsx)(o,{...e.props}):e}exports.MockedComponent=c;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./componentMocks-BklBTS5K.cjs");let r=require("react/jsx-runtime");function c({name:t,children:e}){const o=n.getMockForComponent(t);return o?(0,r.jsx)(o,{...e.props}):e}exports.MockedComponent=c;
package/dist/ui.es.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n } from "./componentMocks-BFMYYH2e.js";
1
+ import { n } from "./componentMocks-B83slL5w.js";
2
2
  import { jsx as p } from "react/jsx-runtime";
3
3
  function c({ name: t, children: o }) {
4
4
  const r = n(t);
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=require("./index.cjs.js");let m=require("fs"),v=require("path");function p(){return{name:"remove-mock-sw",apply:"build",closeBundle(){try{(0,m.rmSync)((0,v.resolve)("dist/mock-sw.js")),console.log("🧹 Removed mock-sw.js from build")}catch{console.log("🧹 No mock-sw.js found in build")}}}}function f(i={}){const{testFilePattern:e=".twd.test.ts"}=i,o=typeof e=="function"?e:t=>t.endsWith(e);return{name:"twd-hmr",apply:"serve",handleHotUpdate({file:t,server:n}){if(o(t))return n.ws.send({type:"full-reload",path:"*"}),[]}}}var c="virtual:twd/init",d=`\0${c}`,w="/**/*.twd.test.ts",u={open:!0,position:"left",serviceWorker:!0,serviceWorkerUrl:"/mock-sw.js"};function k(i={}){const{testFilePattern:e=w,...o}=i,t=o.serviceWorkerUrl!==void 0,n={...u,...o};let s="/";return{name:"twd",apply:"serve",configResolved(r){if(s=r.base,!t&&s!=="/"){const l=u.serviceWorkerUrl.replace(/^\//,"");n.serviceWorkerUrl=`${s}${l}`}},resolveId(r){return r===c?d:null},load(r){if(r!==d)return null;const l=JSON.stringify(e),a=JSON.stringify(n);return["import { initTWD } from 'twd-js/bundled';",`const tests = import.meta.glob(${l});`,`initTWD(tests, ${a});`].join(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});let m=require("fs"),v=require("path");function p(){return{name:"remove-mock-sw",apply:"build",closeBundle(){try{(0,m.rmSync)((0,v.resolve)("dist/mock-sw.js")),console.log("🧹 Removed mock-sw.js from build")}catch{console.log("🧹 No mock-sw.js found in build")}}}}function f(i={}){const{testFilePattern:e=".twd.test.ts"}=i,o=typeof e=="function"?e:t=>t.endsWith(e);return{name:"twd-hmr",apply:"serve",handleHotUpdate({file:t,server:n}){if(o(t))return n.ws.send({type:"full-reload",path:"*"}),[]}}}var c="virtual:twd/init",d=`\0${c}`,w="/**/*.twd.test.ts",a={open:!0,position:"left",serviceWorker:!0,serviceWorkerUrl:"/mock-sw.js"};function k(i={}){const{testFilePattern:e=w,...o}=i,t=o.serviceWorkerUrl!==void 0,n={...a,...o};let s="/";return{name:"twd",apply:"serve",configResolved(r){if(s=r.base,!t&&s!=="/"){const l=a.serviceWorkerUrl.replace(/^\//,"");n.serviceWorkerUrl=`${s}${l}`}},resolveId(r){return r===c?d:null},load(r){if(r!==d)return null;const l=JSON.stringify(e),u=JSON.stringify(n);return["import { initTWD } from 'twd-js/bundled';",`const tests = import.meta.glob(${l});`,`initTWD(tests, ${u});`].join(`
2
2
  `)},transformIndexHtml(){return[{tag:"script",attrs:{type:"module",src:`${s}@id/${c}`},injectTo:"head"}]}}}exports.removeMockServiceWorker=p;exports.twd=k;exports.twdHmr=f;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twd-js",
3
- "version": "1.8.0",
3
+ "version": "1.8.1",
4
4
  "description": "Test While Developing (TWD) - in-browser testing",
5
5
  "type": "module",
6
6
  "license": "MIT",
File without changes