@wyw-in-js/shared 0.8.1 → 1.0.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.
- package/esm/IVariableContext.js.map +1 -1
- package/esm/asyncResolveFallback.js.map +1 -1
- package/esm/asyncResolverFactory.js +11 -0
- package/esm/asyncResolverFactory.js.map +1 -0
- package/esm/babel.js.map +1 -1
- package/esm/findPackageJSON.js +35 -0
- package/esm/findPackageJSON.js.map +1 -1
- package/esm/hasEvalMeta.js.map +1 -1
- package/esm/index.js +1 -0
- package/esm/index.js.map +1 -1
- package/esm/isBoxedPrimitive.js.map +1 -1
- package/esm/logger.js.map +1 -1
- package/esm/options/isFeatureEnabled.js.map +1 -1
- package/esm/options/types.js.map +1 -1
- package/esm/slugify.js.map +1 -1
- package/esm/types.js.map +1 -1
- package/lib/IVariableContext.js.map +1 -1
- package/lib/asyncResolveFallback.js +1 -1
- package/lib/asyncResolveFallback.js.map +1 -1
- package/lib/asyncResolverFactory.js +18 -0
- package/lib/asyncResolverFactory.js.map +1 -0
- package/lib/babel.js.map +1 -1
- package/lib/findPackageJSON.js +36 -1
- package/lib/findPackageJSON.js.map +1 -1
- package/lib/hasEvalMeta.js.map +1 -1
- package/lib/index.js +7 -0
- package/lib/index.js.map +1 -1
- package/lib/isBoxedPrimitive.js.map +1 -1
- package/lib/logger.js +1 -1
- package/lib/logger.js.map +1 -1
- package/lib/options/isFeatureEnabled.js.map +1 -1
- package/lib/options/types.js.map +1 -1
- package/lib/slugify.js.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +10 -11
- package/types/asyncResolverFactory.d.ts +1 -0
- package/types/asyncResolverFactory.js +14 -0
- package/types/findPackageJSON.js +39 -2
- package/types/hasEvalMeta.js +1 -2
- package/types/index.d.ts +2 -1
- package/types/index.js +3 -1
- package/types/isBoxedPrimitive.js +1 -2
- package/types/logger.js +2 -2
- package/types/options/isFeatureEnabled.d.ts +1 -1
- package/types/options/types.d.ts +52 -1
- package/types/slugify.js +1 -2
- package/LICENSE +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IVariableContext.js","names":[],"sources":["../src/IVariableContext.ts"],"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IVariableContext.js","names":[],"sources":["../src/IVariableContext.ts"],"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncResolveFallback.js","names":["path","safeResolve","name","where","require","resolve","paths","e","suffixes","reduce","acc","ext","push","syncResolve","what","importer","stack","map","p","dirname","resolved","Error","suffix","resolvedWithSuffix","asyncResolveFallback","Promise"],"sources":["../src/asyncResolveFallback.ts"],"sourcesContent":["import path from 'path';\n\nconst safeResolve = (name: string, where: string[]): string | Error => {\n try {\n return require.resolve(name, {\n paths: where,\n });\n } catch (e: unknown) {\n return e as Error;\n }\n};\n\nconst suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc: string[], ext) => {\n acc.push(`/index${ext}`);\n acc.push(ext);\n return acc;\n}, []);\n\nexport const syncResolve = (\n what: string,\n importer: string,\n stack: string[]\n): string => {\n const where = [importer, ...stack].map((p) => path.dirname(p));\n const resolved = safeResolve(what, where);\n if (!(resolved instanceof Error)) {\n return resolved;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const suffix of suffixes) {\n const resolvedWithSuffix = safeResolve(what + suffix, where);\n if (resolvedWithSuffix instanceof Error) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return resolvedWithSuffix;\n }\n\n throw resolved;\n};\n\nexport const asyncResolveFallback = (\n what: string,\n importer: string,\n stack: string[]\n): Promise<string> => {\n const resolved = syncResolve(what, importer, stack);\n return Promise.resolve(resolved);\n};\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,MAAMC,WAAW,GAAGA,CAACC,IAAY,EAAEC,KAAe,KAAqB;EACrE,IAAI;IACF,OAAOC,OAAO,CAACC,OAAO,CAACH,IAAI,EAAE;MAC3BI,KAAK,EAAEH;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOI,CAAU,EAAE;IACnB,OAAOA,CAAC;EACV;AACF,CAAC;AAED,MAAMC,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAACC,MAAM,CAAC,CAACC,GAAa,EAAEC,GAAG,KAAK;EAC7ED,GAAG,CAACE,IAAI,
|
|
1
|
+
{"version":3,"file":"asyncResolveFallback.js","names":["path","safeResolve","name","where","require","resolve","paths","e","suffixes","reduce","acc","ext","push","syncResolve","what","importer","stack","map","p","dirname","resolved","Error","suffix","resolvedWithSuffix","asyncResolveFallback","Promise"],"sources":["../src/asyncResolveFallback.ts"],"sourcesContent":["import path from 'path';\n\nconst safeResolve = (name: string, where: string[]): string | Error => {\n try {\n return require.resolve(name, {\n paths: where,\n });\n } catch (e: unknown) {\n return e as Error;\n }\n};\n\nconst suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc: string[], ext) => {\n acc.push(`/index${ext}`);\n acc.push(ext);\n return acc;\n}, []);\n\nexport const syncResolve = (\n what: string,\n importer: string,\n stack: string[]\n): string => {\n const where = [importer, ...stack].map((p) => path.dirname(p));\n const resolved = safeResolve(what, where);\n if (!(resolved instanceof Error)) {\n return resolved;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const suffix of suffixes) {\n const resolvedWithSuffix = safeResolve(what + suffix, where);\n if (resolvedWithSuffix instanceof Error) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return resolvedWithSuffix;\n }\n\n throw resolved;\n};\n\nexport const asyncResolveFallback = (\n what: string,\n importer: string,\n stack: string[]\n): Promise<string> => {\n const resolved = syncResolve(what, importer, stack);\n return Promise.resolve(resolved);\n};\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,MAAMC,WAAW,GAAGA,CAACC,IAAY,EAAEC,KAAe,KAAqB;EACrE,IAAI;IACF,OAAOC,OAAO,CAACC,OAAO,CAACH,IAAI,EAAE;MAC3BI,KAAK,EAAEH;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOI,CAAU,EAAE;IACnB,OAAOA,CAAC;EACV;AACF,CAAC;AAED,MAAMC,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAACC,MAAM,CAAC,CAACC,GAAa,EAAEC,GAAG,KAAK;EAC7ED,GAAG,CAACE,IAAI,CAAC,SAASD,GAAG,EAAE,CAAC;EACxBD,GAAG,CAACE,IAAI,CAACD,GAAG,CAAC;EACb,OAAOD,GAAG;AACZ,CAAC,EAAE,EAAE,CAAC;AAEN,OAAO,MAAMG,WAAW,GAAGA,CACzBC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACJ;EACX,MAAMb,KAAK,GAAG,CAACY,QAAQ,EAAE,GAAGC,KAAK,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKlB,IAAI,CAACmB,OAAO,CAACD,CAAC,CAAC,CAAC;EAC9D,MAAME,QAAQ,GAAGnB,WAAW,CAACa,IAAI,EAAEX,KAAK,CAAC;EACzC,IAAI,EAAEiB,QAAQ,YAAYC,KAAK,CAAC,EAAE;IAChC,OAAOD,QAAQ;EACjB;;EAEA;EACA,KAAK,MAAME,MAAM,IAAId,QAAQ,EAAE;IAC7B,MAAMe,kBAAkB,GAAGtB,WAAW,CAACa,IAAI,GAAGQ,MAAM,EAAEnB,KAAK,CAAC;IAC5D,IAAIoB,kBAAkB,YAAYF,KAAK,EAAE;MACvC;MACA;IACF;IAEA,OAAOE,kBAAkB;EAC3B;EAEA,MAAMH,QAAQ;AAChB,CAAC;AAED,OAAO,MAAMI,oBAAoB,GAAGA,CAClCV,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACK;EACpB,MAAMI,QAAQ,GAAGP,WAAW,CAACC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EACnD,OAAOS,OAAO,CAACpB,OAAO,CAACe,QAAQ,CAAC;AAClC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export const asyncResolverFactory = (onResolve, mapper) => {
|
|
2
|
+
const memoizedSyncResolve = new WeakMap();
|
|
3
|
+
return resolveFn => {
|
|
4
|
+
if (!memoizedSyncResolve.has(resolveFn)) {
|
|
5
|
+
const fn = (what, importer, stack) => resolveFn(...mapper(what, importer, stack)).then(resolved => onResolve(resolved, what, importer, stack));
|
|
6
|
+
memoizedSyncResolve.set(resolveFn, fn);
|
|
7
|
+
}
|
|
8
|
+
return memoizedSyncResolve.get(resolveFn);
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=asyncResolverFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncResolverFactory.js","names":["asyncResolverFactory","onResolve","mapper","memoizedSyncResolve","WeakMap","resolveFn","has","fn","what","importer","stack","then","resolved","set","get"],"sources":["../src/asyncResolverFactory.ts"],"sourcesContent":["export const asyncResolverFactory = <\n TResolved,\n const TResolverArgs extends readonly unknown[],\n TResolve extends (...args: TResolverArgs) => Promise<TResolved>,\n>(\n onResolve: (\n resolved: TResolved,\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n mapper: (what: string, importer: string, stack: string[]) => TResolverArgs\n) => {\n const memoizedSyncResolve = new WeakMap<\n TResolve,\n (what: string, importer: string, stack: string[]) => Promise<string | null>\n >();\n\n return (resolveFn: TResolve) => {\n if (!memoizedSyncResolve.has(resolveFn)) {\n const fn = (\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> =>\n resolveFn(...mapper(what, importer, stack)).then((resolved) =>\n onResolve(resolved, what, importer, stack)\n );\n\n memoizedSyncResolve.set(resolveFn, fn);\n }\n\n return memoizedSyncResolve.get(resolveFn)!;\n };\n};\n"],"mappings":"AAAA,OAAO,MAAMA,oBAAoB,GAAGA,CAKlCC,SAK2B,EAC3BC,MAA0E,KACvE;EACH,MAAMC,mBAAmB,GAAG,IAAIC,OAAO,CAGrC,CAAC;EAEH,OAAQC,SAAmB,IAAK;IAC9B,IAAI,CAACF,mBAAmB,CAACG,GAAG,CAACD,SAAS,CAAC,EAAE;MACvC,MAAME,EAAE,GAAGA,CACTC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KAEfL,SAAS,CAAC,GAAGH,MAAM,CAACM,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC,CAAC,CAACC,IAAI,CAAEC,QAAQ,IACxDX,SAAS,CAACW,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAC3C,CAAC;MAEHP,mBAAmB,CAACU,GAAG,CAACR,SAAS,EAAEE,EAAE,CAAC;IACxC;IAEA,OAAOJ,mBAAmB,CAACW,GAAG,CAACT,SAAS,CAAC;EAC3C,CAAC;AACH,CAAC","ignoreList":[]}
|
package/esm/babel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel.js","names":[],"sources":["../src/babel.ts"],"sourcesContent":["import type core from '@babel/core';\n\nexport type Core = typeof core;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"babel.js","names":[],"sources":["../src/babel.ts"],"sourcesContent":["import type core from '@babel/core';\n\nexport type Core = typeof core;\n"],"mappings":"","ignoreList":[]}
|
package/esm/findPackageJSON.js
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
1
2
|
import { dirname, isAbsolute } from 'path';
|
|
2
3
|
import findUp from 'find-up';
|
|
3
4
|
const cache = new Map();
|
|
5
|
+
function findSelfPackageJSON(pkgName, filename) {
|
|
6
|
+
const packageJSONPath = findUp.sync('package.json', {
|
|
7
|
+
cwd: dirname(filename)
|
|
8
|
+
});
|
|
9
|
+
if (!packageJSONPath) return undefined;
|
|
10
|
+
try {
|
|
11
|
+
const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));
|
|
12
|
+
return packageJSON?.name === pkgName ? packageJSONPath : undefined;
|
|
13
|
+
} catch {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
4
17
|
export function findPackageJSON(pkgName, filename) {
|
|
5
18
|
// Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined
|
|
6
19
|
const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);
|
|
@@ -18,6 +31,28 @@ export function findPackageJSON(pkgName, filename) {
|
|
|
18
31
|
} catch (er) {
|
|
19
32
|
const code = typeof er === 'object' && er !== null && 'code' in er ? er.code : undefined;
|
|
20
33
|
if (code === 'MODULE_NOT_FOUND') {
|
|
34
|
+
if (filename) {
|
|
35
|
+
// Bun doesn't expose workspace packages via `require.resolve`, but tests
|
|
36
|
+
// and tooling can still reference the current package by name.
|
|
37
|
+
const selfPackageJSON = findSelfPackageJSON(pkgName, filename);
|
|
38
|
+
if (selfPackageJSON) {
|
|
39
|
+
return selfPackageJSON;
|
|
40
|
+
}
|
|
41
|
+
const bun = globalThis.Bun;
|
|
42
|
+
if (bun && typeof bun.resolveSync === 'function') {
|
|
43
|
+
try {
|
|
44
|
+
const resolved = bun.resolveSync(pkgName, filename);
|
|
45
|
+
if (!cache.has(resolved)) {
|
|
46
|
+
cache.set(resolved, findUp.sync('package.json', {
|
|
47
|
+
cwd: resolved
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
return cache.get(resolved);
|
|
51
|
+
} catch {
|
|
52
|
+
// fall through to the existing resolution heuristics
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
21
56
|
if (skipPathsOptions && filename) {
|
|
22
57
|
return findPackageJSON(pkgName, null);
|
|
23
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findPackageJSON.js","names":["dirname","isAbsolute","findUp","cache","Map","
|
|
1
|
+
{"version":3,"file":"findPackageJSON.js","names":["readFileSync","dirname","isAbsolute","findUp","cache","Map","findSelfPackageJSON","pkgName","filename","packageJSONPath","sync","cwd","undefined","packageJSON","JSON","parse","name","findPackageJSON","isJest","Boolean","globalThis","process","env","JEST_WORKER_ID","skipPathsOptions","startsWith","pkgPath","require","resolve","paths","has","set","get","er","code","selfPackageJSON","bun","Bun","resolveSync","resolved"],"sources":["../src/findPackageJSON.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, isAbsolute } from 'path';\nimport findUp from 'find-up';\n\nconst cache = new Map<string, string | undefined>();\n\nfunction findSelfPackageJSON(pkgName: string, filename: string) {\n const packageJSONPath = findUp.sync('package.json', {\n cwd: dirname(filename),\n });\n if (!packageJSONPath) return undefined;\n\n try {\n const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));\n return packageJSON?.name === pkgName ? packageJSONPath : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function findPackageJSON(\n pkgName: string,\n filename: string | null | undefined\n) {\n // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined\n const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);\n const skipPathsOptions = isJest && !pkgName.startsWith('.');\n\n try {\n const pkgPath =\n pkgName === '.' && filename && isAbsolute(filename)\n ? filename\n : require.resolve(\n pkgName,\n filename ? { paths: [dirname(filename)] } : {}\n );\n if (!cache.has(pkgPath)) {\n cache.set(pkgPath, findUp.sync('package.json', { cwd: pkgPath }));\n }\n\n return cache.get(pkgPath);\n } catch (er: unknown) {\n const code =\n typeof er === 'object' && er !== null && 'code' in er\n ? er.code\n : undefined;\n\n if (code === 'MODULE_NOT_FOUND') {\n if (filename) {\n // Bun doesn't expose workspace packages via `require.resolve`, but tests\n // and tooling can still reference the current package by name.\n const selfPackageJSON = findSelfPackageJSON(pkgName, filename);\n if (selfPackageJSON) {\n return selfPackageJSON;\n }\n\n const bun = (\n globalThis as typeof globalThis & {\n Bun?: {\n resolveSync?: (specifier: string, from: string) => string;\n };\n }\n ).Bun;\n if (bun && typeof bun.resolveSync === 'function') {\n try {\n const resolved = bun.resolveSync(pkgName, filename);\n if (!cache.has(resolved)) {\n cache.set(\n resolved,\n findUp.sync('package.json', {\n cwd: resolved,\n })\n );\n }\n\n return cache.get(resolved);\n } catch {\n // fall through to the existing resolution heuristics\n }\n }\n }\n\n if (skipPathsOptions && filename) {\n return findPackageJSON(pkgName, null);\n }\n\n return undefined;\n }\n\n if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {\n // See https://github.com/Anber/wyw-in-js/issues/43\n // `require` can't resolve ESM-only packages. We can use the `resolve`\n // package here, but it does not solve all cases because `pkgName`\n // can be an alias and should be resolved by a bundler. However, we can't use\n // `resolve` from a bundler because it is async. The good news is that in that\n // specific case, we can just ignore those packages. For now.\n return undefined;\n }\n\n throw er;\n }\n}\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,IAAI;AACjC,SAASC,OAAO,EAAEC,UAAU,QAAQ,MAAM;AAC1C,OAAOC,MAAM,MAAM,SAAS;AAE5B,MAAMC,KAAK,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAEnD,SAASC,mBAAmBA,CAACC,OAAe,EAAEC,QAAgB,EAAE;EAC9D,MAAMC,eAAe,GAAGN,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;IAClDC,GAAG,EAAEV,OAAO,CAACO,QAAQ;EACvB,CAAC,CAAC;EACF,IAAI,CAACC,eAAe,EAAE,OAAOG,SAAS;EAEtC,IAAI;IACF,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACf,YAAY,CAACS,eAAe,EAAE,MAAM,CAAC,CAAC;IACrE,OAAOI,WAAW,EAAEG,IAAI,KAAKT,OAAO,GAAGE,eAAe,GAAGG,SAAS;EACpE,CAAC,CAAC,MAAM;IACN,OAAOA,SAAS;EAClB;AACF;AAEA,OAAO,SAASK,eAAeA,CAC7BV,OAAe,EACfC,QAAmC,EACnC;EACA;EACA,MAAMU,MAAM,GAAGC,OAAO,CAACC,UAAU,CAACC,OAAO,EAAEC,GAAG,EAAEC,cAAc,CAAC;EAC/D,MAAMC,gBAAgB,GAAGN,MAAM,IAAI,CAACX,OAAO,CAACkB,UAAU,CAAC,GAAG,CAAC;EAE3D,IAAI;IACF,MAAMC,OAAO,GACXnB,OAAO,KAAK,GAAG,IAAIC,QAAQ,IAAIN,UAAU,CAACM,QAAQ,CAAC,GAC/CA,QAAQ,GACRmB,OAAO,CAACC,OAAO,CACbrB,OAAO,EACPC,QAAQ,GAAG;MAAEqB,KAAK,EAAE,CAAC5B,OAAO,CAACO,QAAQ,CAAC;IAAE,CAAC,GAAG,CAAC,CAC/C,CAAC;IACP,IAAI,CAACJ,KAAK,CAAC0B,GAAG,CAACJ,OAAO,CAAC,EAAE;MACvBtB,KAAK,CAAC2B,GAAG,CAACL,OAAO,EAAEvB,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;QAAEC,GAAG,EAAEe;MAAQ,CAAC,CAAC,CAAC;IACnE;IAEA,OAAOtB,KAAK,CAAC4B,GAAG,CAACN,OAAO,CAAC;EAC3B,CAAC,CAAC,OAAOO,EAAW,EAAE;IACpB,MAAMC,IAAI,GACR,OAAOD,EAAE,KAAK,QAAQ,IAAIA,EAAE,KAAK,IAAI,IAAI,MAAM,IAAIA,EAAE,GACjDA,EAAE,CAACC,IAAI,GACPtB,SAAS;IAEf,IAAIsB,IAAI,KAAK,kBAAkB,EAAE;MAC/B,IAAI1B,QAAQ,EAAE;QACZ;QACA;QACA,MAAM2B,eAAe,GAAG7B,mBAAmB,CAACC,OAAO,EAAEC,QAAQ,CAAC;QAC9D,IAAI2B,eAAe,EAAE;UACnB,OAAOA,eAAe;QACxB;QAEA,MAAMC,GAAG,GACPhB,UAAU,CAKViB,GAAG;QACL,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACE,WAAW,KAAK,UAAU,EAAE;UAChD,IAAI;YACF,MAAMC,QAAQ,GAAGH,GAAG,CAACE,WAAW,CAAC/B,OAAO,EAAEC,QAAQ,CAAC;YACnD,IAAI,CAACJ,KAAK,CAAC0B,GAAG,CAACS,QAAQ,CAAC,EAAE;cACxBnC,KAAK,CAAC2B,GAAG,CACPQ,QAAQ,EACRpC,MAAM,CAACO,IAAI,CAAC,cAAc,EAAE;gBAC1BC,GAAG,EAAE4B;cACP,CAAC,CACH,CAAC;YACH;YAEA,OAAOnC,KAAK,CAAC4B,GAAG,CAACO,QAAQ,CAAC;UAC5B,CAAC,CAAC,MAAM;YACN;UAAA;QAEJ;MACF;MAEA,IAAIf,gBAAgB,IAAIhB,QAAQ,EAAE;QAChC,OAAOS,eAAe,CAACV,OAAO,EAAE,IAAI,CAAC;MACvC;MAEA,OAAOK,SAAS;IAClB;IAEA,IAAIsB,IAAI,KAAK,+BAA+B,EAAE;MAC5C;MACA;MACA;MACA;MACA;MACA;MACA,OAAOtB,SAAS;IAClB;IAEA,MAAMqB,EAAE;EACV;AACF","ignoreList":[]}
|
package/esm/hasEvalMeta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasEvalMeta.js","names":["hasEvalMeta","value"],"sources":["../src/hasEvalMeta.ts"],"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"mappings":"AAEA,OAAO,SAASA,WAAWA,CAACC,KAAc,EAAwB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,YAAY,IAAIA,KAAK;AAC7E"}
|
|
1
|
+
{"version":3,"file":"hasEvalMeta.js","names":["hasEvalMeta","value"],"sources":["../src/hasEvalMeta.ts"],"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"mappings":"AAEA,OAAO,SAASA,WAAWA,CAACC,KAAc,EAAwB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,YAAY,IAAIA,KAAK;AAC7E","ignoreList":[]}
|
package/esm/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Debugger } from 'debug';
|
|
2
2
|
export { asyncResolveFallback, syncResolve } from './asyncResolveFallback';
|
|
3
|
+
export { asyncResolverFactory } from './asyncResolverFactory';
|
|
3
4
|
export { hasEvalMeta } from './hasEvalMeta';
|
|
4
5
|
export { findPackageJSON } from './findPackageJSON';
|
|
5
6
|
export { isBoxedPrimitive } from './isBoxedPrimitive';
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["Debugger","asyncResolveFallback","syncResolve","hasEvalMeta","findPackageJSON","isBoxedPrimitive","enableDebug","logger","isFeatureEnabled","slugify","ValueType"],"sources":["../src/index.ts"],"sourcesContent":["export { Debugger } from 'debug';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n StrictOptions,\n EvalRule,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n BuildCodeFrameErrorFn,\n ConstValue,\n ExpressionValue,\n FunctionValue,\n ICSSRule,\n LazyValue,\n Location,\n Replacement,\n Replacements,\n Rules,\n WYWEvalMeta,\n} from './types';\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,oBAAoB,EAAEC,WAAW,QAAQ,wBAAwB;AAC1E,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,WAAW,EAAEC,MAAM,QAAQ,UAAU;AAC9C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,SAAS,QAAQ,SAAS"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["Debugger","asyncResolveFallback","syncResolve","asyncResolverFactory","hasEvalMeta","findPackageJSON","isBoxedPrimitive","enableDebug","logger","isFeatureEnabled","slugify","ValueType"],"sources":["../src/index.ts"],"sourcesContent":["export { Debugger } from 'debug';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { asyncResolverFactory } from './asyncResolverFactory';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n ImportLoader,\n ImportLoaderContext,\n ImportLoaders,\n ImportOverride,\n ImportOverrides,\n TagResolverMeta,\n StrictOptions,\n EvalRule,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n BuildCodeFrameErrorFn,\n ConstValue,\n ExpressionValue,\n FunctionValue,\n ICSSRule,\n LazyValue,\n Location,\n Replacement,\n Replacements,\n Rules,\n WYWEvalMeta,\n} from './types';\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,oBAAoB,EAAEC,WAAW,QAAQ,wBAAwB;AAC1E,SAASC,oBAAoB,QAAQ,wBAAwB;AAC7D,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,eAAe,QAAQ,mBAAmB;AACnD,SAASC,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,WAAW,EAAEC,MAAM,QAAQ,UAAU;AAC9C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAASC,OAAO,QAAQ,WAAW;AACnC,SAASC,SAAS,QAAQ,SAAS","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isBoxedPrimitive.js","names":["constructors","isBoxedPrimitive","o","includes","constructor","name","valueOf"],"sources":["../src/isBoxedPrimitive.ts"],"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"mappings":"AAAA;AACA;;AAEA,MAAMA,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzC,OAAO,SAASC,gBAAgBA,CAACC,CAAU,EAAwB;EACjE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACrD,OACEF,YAAY,CAACG,QAAQ,CAACD,CAAC,CAACE,WAAW,CAACC,IAAI,CAAC,IACzC,OAAOH,CAAC,EAAEI,OAAO,CAAC,CAAC,KAAK,QAAQ;AAEpC"}
|
|
1
|
+
{"version":3,"file":"isBoxedPrimitive.js","names":["constructors","isBoxedPrimitive","o","includes","constructor","name","valueOf"],"sources":["../src/isBoxedPrimitive.ts"],"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"mappings":"AAAA;AACA;;AAEA,MAAMA,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACzC,OAAO,SAASC,gBAAgBA,CAACC,CAAU,EAAwB;EACjE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACrD,OACEF,YAAY,CAACG,QAAQ,CAACD,CAAC,CAACE,WAAW,CAACC,IAAI,CAAC,IACzC,OAAOH,CAAC,EAAEI,OAAO,CAAC,CAAC,KAAK,QAAQ;AAEpC","ignoreList":[]}
|
package/esm/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["genericDebug","BASE_NAMESPACE","logger","loggers","Map","gerOrCreate","namespace","lastIndexOf","has","set","substring","extend","get","formatters","r","ref","text","color","parseInt","colorCode","f","fn","JSON","stringify","enableDebug","enable"],"sources":["../src/logger.ts"],"sourcesContent":["import genericDebug from 'debug';\nimport type { Debugger } from 'debug';\n\nconst BASE_NAMESPACE = 'wyw-in-js';\n\nexport const logger = genericDebug(BASE_NAMESPACE);\n\nconst loggers = new Map<string, Debugger>();\n\nfunction gerOrCreate(namespace: string | null | undefined): Debugger {\n if (!namespace) return logger;\n const lastIndexOf = namespace.lastIndexOf(':');\n if (!loggers.has(namespace)) {\n loggers.set(\n namespace,\n gerOrCreate(namespace.substring(0, lastIndexOf)).extend(\n namespace.substring(lastIndexOf + 1)\n )\n );\n }\n\n return loggers.get(namespace)!;\n}\n\ngenericDebug.formatters.r = (\n ref: string | { namespace: string; text?: string }\n) => {\n const namespace = typeof ref === 'string' ? ref : ref.namespace;\n const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;\n const color = parseInt(gerOrCreate(namespace).color, 10);\n const colorCode = `\\u001B[3${color < 8 ? color : `8;5;${color}`}`;\n return `${colorCode};1m${text}\\u001B[0m`;\n};\n\ngenericDebug.formatters.f = function f(fn: () => unknown) {\n return JSON.stringify(fn());\n};\n\nexport function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {\n genericDebug.enable(namespace);\n}\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,OAAO;AAGhC,MAAMC,cAAc,GAAG,WAAW;AAElC,OAAO,MAAMC,MAAM,GAAGF,YAAY,CAACC,cAAc,CAAC;AAElD,MAAME,OAAO,GAAG,IAAIC,GAAG,CAAmB,CAAC;AAE3C,SAASC,WAAWA,CAACC,SAAoC,EAAY;EACnE,IAAI,CAACA,SAAS,EAAE,OAAOJ,MAAM;EAC7B,MAAMK,WAAW,GAAGD,SAAS,CAACC,WAAW,CAAC,GAAG,CAAC;EAC9C,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;IAC3BH,OAAO,CAACM,GAAG,CACTH,SAAS,EACTD,WAAW,CAACC,SAAS,CAACI,SAAS,CAAC,CAAC,EAAEH,WAAW,CAAC,CAAC,CAACI,MAAM,CACrDL,SAAS,CAACI,SAAS,CAACH,WAAW,GAAG,CAAC,CACrC,CACF,CAAC;EACH;EAEA,OAAOJ,OAAO,CAACS,GAAG,CAACN,SAAS,CAAC;AAC/B;AAEAN,YAAY,CAACa,UAAU,CAACC,CAAC,GACvBC,GAAkD,IAC/C;EACH,MAAMT,SAAS,GAAG,OAAOS,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACT,SAAS;EAC/D,MAAMU,IAAI,GAAG,OAAOD,GAAG,KAAK,QAAQ,GAAGT,SAAS,GAAGS,GAAG,CAACC,IAAI,IAAIV,SAAS;EACxE,MAAMW,KAAK,GAAGC,QAAQ,CAACb,WAAW,CAACC,SAAS,CAAC,CAACW,KAAK,EAAE,EAAE,CAAC;EACxD,MAAME,SAAS,
|
|
1
|
+
{"version":3,"file":"logger.js","names":["genericDebug","BASE_NAMESPACE","logger","loggers","Map","gerOrCreate","namespace","lastIndexOf","has","set","substring","extend","get","formatters","r","ref","text","color","parseInt","colorCode","f","fn","JSON","stringify","enableDebug","enable"],"sources":["../src/logger.ts"],"sourcesContent":["import genericDebug from 'debug';\nimport type { Debugger } from 'debug';\n\nconst BASE_NAMESPACE = 'wyw-in-js';\n\nexport const logger = genericDebug(BASE_NAMESPACE);\n\nconst loggers = new Map<string, Debugger>();\n\nfunction gerOrCreate(namespace: string | null | undefined): Debugger {\n if (!namespace) return logger;\n const lastIndexOf = namespace.lastIndexOf(':');\n if (!loggers.has(namespace)) {\n loggers.set(\n namespace,\n gerOrCreate(namespace.substring(0, lastIndexOf)).extend(\n namespace.substring(lastIndexOf + 1)\n )\n );\n }\n\n return loggers.get(namespace)!;\n}\n\ngenericDebug.formatters.r = (\n ref: string | { namespace: string; text?: string }\n) => {\n const namespace = typeof ref === 'string' ? ref : ref.namespace;\n const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;\n const color = parseInt(gerOrCreate(namespace).color, 10);\n const colorCode = `\\u001B[3${color < 8 ? color : `8;5;${color}`}`;\n return `${colorCode};1m${text}\\u001B[0m`;\n};\n\ngenericDebug.formatters.f = function f(fn: () => unknown) {\n return JSON.stringify(fn());\n};\n\nexport function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {\n genericDebug.enable(namespace);\n}\n"],"mappings":"AAAA,OAAOA,YAAY,MAAM,OAAO;AAGhC,MAAMC,cAAc,GAAG,WAAW;AAElC,OAAO,MAAMC,MAAM,GAAGF,YAAY,CAACC,cAAc,CAAC;AAElD,MAAME,OAAO,GAAG,IAAIC,GAAG,CAAmB,CAAC;AAE3C,SAASC,WAAWA,CAACC,SAAoC,EAAY;EACnE,IAAI,CAACA,SAAS,EAAE,OAAOJ,MAAM;EAC7B,MAAMK,WAAW,GAAGD,SAAS,CAACC,WAAW,CAAC,GAAG,CAAC;EAC9C,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;IAC3BH,OAAO,CAACM,GAAG,CACTH,SAAS,EACTD,WAAW,CAACC,SAAS,CAACI,SAAS,CAAC,CAAC,EAAEH,WAAW,CAAC,CAAC,CAACI,MAAM,CACrDL,SAAS,CAACI,SAAS,CAACH,WAAW,GAAG,CAAC,CACrC,CACF,CAAC;EACH;EAEA,OAAOJ,OAAO,CAACS,GAAG,CAACN,SAAS,CAAC;AAC/B;AAEAN,YAAY,CAACa,UAAU,CAACC,CAAC,GACvBC,GAAkD,IAC/C;EACH,MAAMT,SAAS,GAAG,OAAOS,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACT,SAAS;EAC/D,MAAMU,IAAI,GAAG,OAAOD,GAAG,KAAK,QAAQ,GAAGT,SAAS,GAAGS,GAAG,CAACC,IAAI,IAAIV,SAAS;EACxE,MAAMW,KAAK,GAAGC,QAAQ,CAACb,WAAW,CAACC,SAAS,CAAC,CAACW,KAAK,EAAE,EAAE,CAAC;EACxD,MAAME,SAAS,GAAG,WAAWF,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,OAAOA,KAAK,EAAE,EAAE;EACjE,OAAO,GAAGE,SAAS,MAAMH,IAAI,WAAW;AAC1C,CAAC;AAEDhB,YAAY,CAACa,UAAU,CAACO,CAAC,GAAG,SAASA,CAACA,CAACC,EAAiB,EAAE;EACxD,OAAOC,IAAI,CAACC,SAAS,CAACF,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAED,OAAO,SAASG,WAAWA,CAAClB,SAAS,GAAG,GAAGL,cAAc,IAAI,EAAE;EAC7DD,YAAY,CAACyB,MAAM,CAACnB,SAAS,CAAC;AAChC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFeatureEnabled.js","names":["Minimatch","cachedMatchers","Map","isFeatureEnabled","features","featureName","filename","value","array","Array","isArray","map","pattern","matcher","get","startsWith","set","match","reduce","acc","negated"],"sources":["../../src/options/isFeatureEnabled.ts"],"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,WAAW;;AAIrC;;AAGA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAG5B,CAAC;AAEH,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,QAIa,EACbC,WAAuB,EACvBC,QAAgB,KACb;EACH,MAAMC,KAAK,GAAGH,QAAQ,GAAGC,WAAW,CAAC,IAAI,KAAK;EAC9C,IAAI,OAAOE,KAAK,KAAK,SAAS,EAAE;IAC9B,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,EAAE;IACrC,OAAO,IAAI;EACb;EAEA,MAAMC,KAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;;EAE9D;AACF;AACA;EACE,OAAOC,KAAK,CACTG,GAAG,CAAEC,OAAO,IAAK;IAChB,IAAIC,OAAO,GAAGZ,cAAc,CAACa,GAAG,CAACF,OAAO,CAAC;IACzC,IAAI,CAACC,OAAO,EAAE;MACZA,OAAO,GAAG,CAACD,OAAO,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAIf,SAAS,CAACY,OAAO,CAAC,CAAC;MAC3DX,cAAc,CAACe,GAAG,CAACJ,OAAO,EAAEC,OAAO,CAAC;IACtC;IAEA,OAAO,CAACA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,CAACX,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CACDY,MAAM,CACL,CAACC,GAAG,EAAE,CAACC,OAAO,EAAEH,KAAK,CAAC,KAAMG,OAAO,GAAGD,GAAG,IAAIF,KAAK,GAAGE,GAAG,IAAIF,KAAM,EAClE,KACF,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"isFeatureEnabled.js","names":["Minimatch","cachedMatchers","Map","isFeatureEnabled","features","featureName","filename","value","array","Array","isArray","map","pattern","matcher","get","startsWith","set","match","reduce","acc","negated"],"sources":["../../src/options/isFeatureEnabled.ts"],"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,WAAW;;AAIrC;;AAGA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAG5B,CAAC;AAEH,OAAO,MAAMC,gBAAgB,GAAGA,CAC9BC,QAIa,EACbC,WAAuB,EACvBC,QAAgB,KACb;EACH,MAAMC,KAAK,GAAGH,QAAQ,GAAGC,WAAW,CAAC,IAAI,KAAK;EAC9C,IAAI,OAAOE,KAAK,KAAK,SAAS,EAAE;IAC9B,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,EAAE;IACrC,OAAO,IAAI;EACb;EAEA,MAAMC,KAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;;EAE9D;AACF;AACA;EACE,OAAOC,KAAK,CACTG,GAAG,CAAEC,OAAO,IAAK;IAChB,IAAIC,OAAO,GAAGZ,cAAc,CAACa,GAAG,CAACF,OAAO,CAAC;IACzC,IAAI,CAACC,OAAO,EAAE;MACZA,OAAO,GAAG,CAACD,OAAO,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAIf,SAAS,CAACY,OAAO,CAAC,CAAC;MAC3DX,cAAc,CAACe,GAAG,CAACJ,OAAO,EAAEC,OAAO,CAAC;IACtC;IAEA,OAAO,CAACA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAACI,KAAK,CAACX,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CACDY,MAAM,CACL,CAACC,GAAG,EAAE,CAACC,OAAO,EAAEH,KAAK,CAAC,KAAMG,OAAO,GAAGD,GAAG,IAAIF,KAAK,GAAGE,GAAG,IAAIF,KAAM,EAClE,KACF,CAAC;AACL,CAAC","ignoreList":[]}
|
package/esm/options/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/options/types.ts"],"sourcesContent":["import type { TransformOptions } from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { IVariableContext } from '../IVariableContext';\nimport type { Core } from '../babel';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype VmContext = Record<string, any>; // It's Context from `vm`\n\nexport type ClassNameSlugVars = {\n dir: string;\n ext: string;\n file: string;\n hash: string;\n index: number;\n name: string;\n title: string;\n};\n\nexport type ClassNameFn = (\n hash: string,\n title: string,\n args: ClassNameSlugVars\n) => string;\n\nexport type VariableNameFn = (context: IVariableContext) => string;\n\nexport type EvaluatorConfig = {\n features: StrictOptions['features'];\n highPriorityPlugins: string[];\n onlyExports: string[];\n};\n\nexport type Evaluator = (\n evalConfig: TransformOptions,\n ast: File,\n code: string,\n config: EvaluatorConfig,\n babel: Core\n) => [\n ast: File,\n code: string,\n imports: Map<string, string[]> | null,\n exports?: string[] | null,\n];\n\nexport type EvalRule = {\n action: Evaluator | 'ignore' | string;\n babelOptions?: TransformOptions;\n test?: RegExp | ((path: string, code: string) => boolean);\n};\n\nexport type FeatureFlag = boolean | string | string[];\n\ntype AllFeatureFlags = {\n dangerousCodeRemover: FeatureFlag;\n globalCache: FeatureFlag;\n happyDOM: FeatureFlag;\n softErrors: FeatureFlag;\n useBabelConfigs: FeatureFlag;\n useWeakRefInEval: FeatureFlag;\n};\n\nexport type FeatureFlags<\n TOnly extends keyof AllFeatureFlags = keyof AllFeatureFlags,\n> = Pick<AllFeatureFlags, TOnly>;\n\nexport type CodeRemoverOptions = {\n componentTypes?: Record<string, string[]>;\n hocs?: Record<string, string[]>;\n};\n\nexport type StrictOptions = {\n babelOptions: TransformOptions;\n classNameSlug?: string | ClassNameFn;\n codeRemover?: CodeRemoverOptions;\n displayName: boolean;\n evaluate: boolean;\n extensions: string[];\n features: FeatureFlags;\n highPriorityPlugins: string[];\n ignore?: RegExp;\n overrideContext?: (\n context: Partial<VmContext>,\n filename: string\n ) => Partial<VmContext>;\n rules: EvalRule[];\n tagResolver?: (source: string
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/options/types.ts"],"sourcesContent":["import type { TransformOptions } from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { IVariableContext } from '../IVariableContext';\nimport type { Core } from '../babel';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype VmContext = Record<string, any>; // It's Context from `vm`\n\nexport type ClassNameSlugVars = {\n dir: string;\n ext: string;\n file: string;\n hash: string;\n index: number;\n name: string;\n title: string;\n};\n\nexport type ClassNameFn = (\n hash: string,\n title: string,\n args: ClassNameSlugVars\n) => string;\n\nexport type VariableNameFn = (context: IVariableContext) => string;\n\nexport type EvaluatorConfig = {\n features: StrictOptions['features'];\n highPriorityPlugins: string[];\n importOverrides?: StrictOptions['importOverrides'];\n onlyExports: string[];\n root?: string;\n};\n\nexport type Evaluator = (\n evalConfig: TransformOptions,\n ast: File,\n code: string,\n config: EvaluatorConfig,\n babel: Core\n) => [\n ast: File,\n code: string,\n imports: Map<string, string[]> | null,\n exports?: string[] | null,\n];\n\nexport type EvalRule = {\n action: Evaluator | 'ignore' | string;\n babelOptions?: TransformOptions;\n test?: RegExp | ((path: string, code: string) => boolean);\n};\n\nexport type FeatureFlag = boolean | string | string[];\n\ntype ImportOverrideMock = {\n /**\n * Replaces resolved import with provided specifier (resolved on prepare/eval stages).\n * Raw `source` stays intact; only resolution target changes.\n */\n mock: string;\n noShake?: never;\n unknown?: never;\n};\n\ntype ImportOverrideNoShake = {\n mock?: never;\n /**\n * Disables tree-shaking for this import by forcing `only=['*']`.\n */\n noShake: true;\n unknown?: never;\n};\n\ntype ImportOverrideUnknown = {\n mock?: never;\n noShake?: never;\n /**\n * Controls behavior when an import reaches eval-time Node resolver fallback.\n * - 'warn' (default): warn once per canonical import key.\n * - 'error': throw.\n * - 'allow': no warning, keep load-as-is.\n */\n unknown: 'allow' | 'error' | 'warn';\n};\n\nexport type ImportOverride =\n | ImportOverrideMock\n | ImportOverrideNoShake\n | ImportOverrideUnknown;\n\nexport type ImportOverrides = Record<string, ImportOverride>;\n\nexport type ImportLoaderContext = {\n emitWarning: (message: string) => void;\n filename: string;\n hash: string;\n importer: string;\n query: string;\n readFile: () => string;\n request: string;\n resolved: string;\n toUrl: () => string;\n};\n\nexport type ImportLoader =\n | 'raw'\n | 'url'\n | ((context: ImportLoaderContext) => unknown);\n\nexport type ImportLoaders = Record<string, ImportLoader | false>;\n\nexport type TagResolverMeta = {\n resolvedSource?: string;\n sourceFile: string | null | undefined;\n};\n\ntype AllFeatureFlags = {\n dangerousCodeRemover: FeatureFlag;\n globalCache: FeatureFlag;\n happyDOM: FeatureFlag;\n softErrors: FeatureFlag;\n useBabelConfigs: FeatureFlag;\n useWeakRefInEval: FeatureFlag;\n};\n\nexport type FeatureFlags<\n TOnly extends keyof AllFeatureFlags = keyof AllFeatureFlags,\n> = Pick<AllFeatureFlags, TOnly>;\n\nexport type CodeRemoverOptions = {\n componentTypes?: Record<string, string[]>;\n hocs?: Record<string, string[]>;\n};\n\nexport type StrictOptions = {\n babelOptions: TransformOptions;\n classNameSlug?: string | ClassNameFn;\n codeRemover?: CodeRemoverOptions;\n displayName: boolean;\n evaluate: boolean;\n extensions: string[];\n features: FeatureFlags;\n highPriorityPlugins: string[];\n ignore?: RegExp;\n importLoaders?: ImportLoaders;\n importOverrides?: ImportOverrides;\n overrideContext?: (\n context: Partial<VmContext>,\n filename: string\n ) => Partial<VmContext>;\n rules: EvalRule[];\n tagResolver?: (\n source: string,\n tag: string,\n meta: TagResolverMeta\n ) => string | null;\n variableNameConfig?: 'var' | 'dashes' | 'raw';\n variableNameSlug?: string | VariableNameFn;\n};\n"],"mappings":"","ignoreList":[]}
|
package/esm/slugify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugify.js","names":["UInt32","str","pos","charCodeAt","UInt16","Umul32","n","m","nlo","nhi","doHash","seed","r","h","length","currentIndex","k","slugify","code","toString"],"sources":["../src/slugify.ts"],"sourcesContent":["/* eslint-disable no-plusplus, no-bitwise, default-case, no-param-reassign, prefer-destructuring */\n/**\n * This file contains a utility to generate hashes to be used as generated class names\n */\n\n/**\n * murmurhash2 via https://gist.github.com/raycmorgan/588423\n */\n\nfunction UInt32(str: string, pos: number) {\n return (\n str.charCodeAt(pos++) +\n (str.charCodeAt(pos++) << 8) +\n (str.charCodeAt(pos++) << 16) +\n (str.charCodeAt(pos) << 24)\n );\n}\n\nfunction UInt16(str: string, pos: number) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n: number, m: number) {\n n |= 0;\n m |= 0;\n const nlo = n & 0xffff;\n const nhi = n >>> 16;\n return (nlo * m + (((nhi * m) & 0xffff) << 16)) | 0;\n}\n\nfunction doHash(str: string, seed = 0) {\n const m = 0x5bd1e995;\n const r = 24;\n let h = seed ^ str.length;\n let length = str.length;\n let currentIndex = 0;\n\n while (length >= 4) {\n let k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nexport function slugify(code: string) {\n return doHash(code).toString(36);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAASA,MAAMA,CAACC,GAAW,EAAEC,GAAW,EAAE;EACxC,OACED,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IACpBD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAC3BD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAC5BD,GAAG,CAACE,UAAU,CAACD,GAAG,CAAC,IAAI,EAAE,CAAC;AAE/B;AAEA,SAASE,MAAMA,CAACH,GAAW,EAAEC,GAAW,EAAE;EACxC,OAAOD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAID,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D;AAEA,SAASG,MAAMA,CAACC,CAAS,EAAEC,CAAS,EAAE;EACpCD,CAAC,IAAI,CAAC;EACNC,CAAC,IAAI,CAAC;EACN,MAAMC,GAAG,GAAGF,CAAC,GAAG,MAAM;EACtB,MAAMG,GAAG,GAAGH,CAAC,KAAK,EAAE;EACpB,OAAQE,GAAG,GAAGD,CAAC,IAAI,CAAEE,GAAG,GAAGF,CAAC,GAAI,MAAM,KAAK,EAAE,CAAC,GAAI,CAAC;AACrD;AAEA,SAASG,MAAMA,CAACT,GAAW,EAAEU,IAAI,GAAG,CAAC,EAAE;EACrC,MAAMJ,CAAC,GAAG,UAAU;EACpB,MAAMK,CAAC,GAAG,EAAE;EACZ,IAAIC,CAAC,GAAGF,IAAI,GAAGV,GAAG,CAACa,MAAM;EACzB,IAAIA,MAAM,GAAGb,GAAG,CAACa,MAAM;EACvB,IAAIC,YAAY,GAAG,CAAC;EAEpB,OAAOD,MAAM,IAAI,CAAC,EAAE;IAClB,IAAIE,CAAC,GAAGhB,MAAM,CAACC,GAAG,EAAEc,YAAY,CAAC;IAEjCC,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAChBS,CAAC,IAAIA,CAAC,KAAKJ,CAAC;IACZI,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAEhBM,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;IAChBM,CAAC,IAAIG,CAAC;IAEND,YAAY,IAAI,CAAC;IACjBD,MAAM,IAAI,CAAC;EACb;EAEA,QAAQA,MAAM;IACZ,KAAK,CAAC;MACJD,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE;MAC3CF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,CAAC;MACjCF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;EACJ;EAEAM,CAAC,IAAIA,CAAC,KAAK,EAAE;EACbA,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;EAChBM,CAAC,IAAIA,CAAC,KAAK,EAAE;EAEb,OAAOA,CAAC,KAAK,CAAC;AAChB;AAEA,OAAO,SAASI,OAAOA,CAACC,IAAY,EAAE;EACpC,OAAOR,MAAM,CAACQ,IAAI,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;AAClC"}
|
|
1
|
+
{"version":3,"file":"slugify.js","names":["UInt32","str","pos","charCodeAt","UInt16","Umul32","n","m","nlo","nhi","doHash","seed","r","h","length","currentIndex","k","slugify","code","toString"],"sources":["../src/slugify.ts"],"sourcesContent":["/* eslint-disable no-plusplus, no-bitwise, default-case, no-param-reassign, prefer-destructuring */\n/**\n * This file contains a utility to generate hashes to be used as generated class names\n */\n\n/**\n * murmurhash2 via https://gist.github.com/raycmorgan/588423\n */\n\nfunction UInt32(str: string, pos: number) {\n return (\n str.charCodeAt(pos++) +\n (str.charCodeAt(pos++) << 8) +\n (str.charCodeAt(pos++) << 16) +\n (str.charCodeAt(pos) << 24)\n );\n}\n\nfunction UInt16(str: string, pos: number) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n: number, m: number) {\n n |= 0;\n m |= 0;\n const nlo = n & 0xffff;\n const nhi = n >>> 16;\n return (nlo * m + (((nhi * m) & 0xffff) << 16)) | 0;\n}\n\nfunction doHash(str: string, seed = 0) {\n const m = 0x5bd1e995;\n const r = 24;\n let h = seed ^ str.length;\n let length = str.length;\n let currentIndex = 0;\n\n while (length >= 4) {\n let k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nexport function slugify(code: string) {\n return doHash(code).toString(36);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAASA,MAAMA,CAACC,GAAW,EAAEC,GAAW,EAAE;EACxC,OACED,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IACpBD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAC3BD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAC5BD,GAAG,CAACE,UAAU,CAACD,GAAG,CAAC,IAAI,EAAE,CAAC;AAE/B;AAEA,SAASE,MAAMA,CAACH,GAAW,EAAEC,GAAW,EAAE;EACxC,OAAOD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAID,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D;AAEA,SAASG,MAAMA,CAACC,CAAS,EAAEC,CAAS,EAAE;EACpCD,CAAC,IAAI,CAAC;EACNC,CAAC,IAAI,CAAC;EACN,MAAMC,GAAG,GAAGF,CAAC,GAAG,MAAM;EACtB,MAAMG,GAAG,GAAGH,CAAC,KAAK,EAAE;EACpB,OAAQE,GAAG,GAAGD,CAAC,IAAI,CAAEE,GAAG,GAAGF,CAAC,GAAI,MAAM,KAAK,EAAE,CAAC,GAAI,CAAC;AACrD;AAEA,SAASG,MAAMA,CAACT,GAAW,EAAEU,IAAI,GAAG,CAAC,EAAE;EACrC,MAAMJ,CAAC,GAAG,UAAU;EACpB,MAAMK,CAAC,GAAG,EAAE;EACZ,IAAIC,CAAC,GAAGF,IAAI,GAAGV,GAAG,CAACa,MAAM;EACzB,IAAIA,MAAM,GAAGb,GAAG,CAACa,MAAM;EACvB,IAAIC,YAAY,GAAG,CAAC;EAEpB,OAAOD,MAAM,IAAI,CAAC,EAAE;IAClB,IAAIE,CAAC,GAAGhB,MAAM,CAACC,GAAG,EAAEc,YAAY,CAAC;IAEjCC,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAChBS,CAAC,IAAIA,CAAC,KAAKJ,CAAC;IACZI,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAEhBM,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;IAChBM,CAAC,IAAIG,CAAC;IAEND,YAAY,IAAI,CAAC;IACjBD,MAAM,IAAI,CAAC;EACb;EAEA,QAAQA,MAAM;IACZ,KAAK,CAAC;MACJD,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE;MAC3CF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,CAAC;MACjCF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;EACJ;EAEAM,CAAC,IAAIA,CAAC,KAAK,EAAE;EACbA,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;EAChBM,CAAC,IAAIA,CAAC,KAAK,EAAE;EAEb,OAAOA,CAAC,KAAK,CAAC;AAChB;AAEA,OAAO,SAASI,OAAOA,CAACC,IAAY,EAAE;EACpC,OAAOR,MAAM,CAACQ,IAAI,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;AAClC","ignoreList":[]}
|
package/esm/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["ValueType"],"sources":["../src/types.ts"],"sourcesContent":["import type {\n BigIntLiteral,\n BooleanLiteral,\n DecimalLiteral,\n Identifier,\n NullLiteral,\n NumericLiteral,\n StringLiteral,\n} from '@babel/types';\n\nexport type Artifact = [name: string, data: unknown];\n\nexport type BuildCodeFrameErrorFn = <TError extends Error>(\n msg: string,\n Error?: new (innerMsg: string) => TError\n) => TError;\n\nexport enum ValueType {\n LAZY,\n FUNCTION,\n CONST,\n}\n\nexport type LazyValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.LAZY;\n source: string;\n};\n\nexport type FunctionValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.FUNCTION;\n source: string;\n};\n\nexport type ConstValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex:\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | DecimalLiteral;\n kind: ValueType.CONST;\n source: string;\n value: string | number | boolean | null;\n};\n\nexport type ExpressionValue = LazyValue | FunctionValue | ConstValue;\n\nexport type WYWEvalMeta = {\n __wyw_meta: {\n className: string;\n extends: WYWEvalMeta;\n };\n};\n\nexport type Location = {\n column: number;\n line: number;\n};\n\nexport type Replacement = {\n length: number;\n original: { end: Location; start: Location };\n};\n\nexport type Replacements = Array<Replacement>;\n\n/**\n * CSS-related types\n */\n\nexport interface ICSSRule {\n atom?: boolean;\n className: string;\n cssText: string;\n displayName: string;\n start: Location | null | undefined;\n}\n\nexport type Rules = Record<string, ICSSRule>;\n"],"mappings":"AAiBA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAyDrB;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["ValueType"],"sources":["../src/types.ts"],"sourcesContent":["import type {\n BigIntLiteral,\n BooleanLiteral,\n DecimalLiteral,\n Identifier,\n NullLiteral,\n NumericLiteral,\n StringLiteral,\n} from '@babel/types';\n\nexport type Artifact = [name: string, data: unknown];\n\nexport type BuildCodeFrameErrorFn = <TError extends Error>(\n msg: string,\n Error?: new (innerMsg: string) => TError\n) => TError;\n\nexport enum ValueType {\n LAZY,\n FUNCTION,\n CONST,\n}\n\nexport type LazyValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.LAZY;\n source: string;\n};\n\nexport type FunctionValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.FUNCTION;\n source: string;\n};\n\nexport type ConstValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex:\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | DecimalLiteral;\n kind: ValueType.CONST;\n source: string;\n value: string | number | boolean | null;\n};\n\nexport type ExpressionValue = LazyValue | FunctionValue | ConstValue;\n\nexport type WYWEvalMeta = {\n __wyw_meta: {\n className: string;\n extends: WYWEvalMeta;\n };\n};\n\nexport type Location = {\n column: number;\n line: number;\n};\n\nexport type Replacement = {\n length: number;\n original: { end: Location; start: Location };\n};\n\nexport type Replacements = Array<Replacement>;\n\n/**\n * CSS-related types\n */\n\nexport interface ICSSRule {\n atom?: boolean;\n className: string;\n cssText: string;\n displayName: string;\n start: Location | null | undefined;\n}\n\nexport type Rules = Record<string, ICSSRule>;\n"],"mappings":"AAiBA,WAAYA,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;;AAyDrB;AACA;AACA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IVariableContext.js","names":[],"sources":["../src/IVariableContext.ts"],"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"IVariableContext.js","names":[],"sources":["../src/IVariableContext.ts"],"sourcesContent":["export interface IVariableContext {\n componentName: string;\n componentSlug: string;\n index: number;\n precedingCss: string;\n processor: string;\n source: string;\n unit: string;\n valueSlug: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.syncResolve = exports.asyncResolveFallback = void 0;
|
|
7
7
|
var _path = _interopRequireDefault(require("path"));
|
|
8
|
-
function _interopRequireDefault(
|
|
8
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
9
|
const safeResolve = (name, where) => {
|
|
10
10
|
try {
|
|
11
11
|
return require.resolve(name, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncResolveFallback.js","names":["_path","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"asyncResolveFallback.js","names":["_path","_interopRequireDefault","require","e","__esModule","default","safeResolve","name","where","resolve","paths","suffixes","reduce","acc","ext","push","syncResolve","what","importer","stack","map","p","path","dirname","resolved","Error","suffix","resolvedWithSuffix","exports","asyncResolveFallback","Promise"],"sources":["../src/asyncResolveFallback.ts"],"sourcesContent":["import path from 'path';\n\nconst safeResolve = (name: string, where: string[]): string | Error => {\n try {\n return require.resolve(name, {\n paths: where,\n });\n } catch (e: unknown) {\n return e as Error;\n }\n};\n\nconst suffixes = ['.js', '.ts', '.jsx', '.tsx'].reduce((acc: string[], ext) => {\n acc.push(`/index${ext}`);\n acc.push(ext);\n return acc;\n}, []);\n\nexport const syncResolve = (\n what: string,\n importer: string,\n stack: string[]\n): string => {\n const where = [importer, ...stack].map((p) => path.dirname(p));\n const resolved = safeResolve(what, where);\n if (!(resolved instanceof Error)) {\n return resolved;\n }\n\n // eslint-disable-next-line no-restricted-syntax\n for (const suffix of suffixes) {\n const resolvedWithSuffix = safeResolve(what + suffix, where);\n if (resolvedWithSuffix instanceof Error) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n return resolvedWithSuffix;\n }\n\n throw resolved;\n};\n\nexport const asyncResolveFallback = (\n what: string,\n importer: string,\n stack: string[]\n): Promise<string> => {\n const resolved = syncResolve(what, importer, stack);\n return Promise.resolve(resolved);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAwB,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExB,MAAMG,WAAW,GAAGA,CAACC,IAAY,EAAEC,KAAe,KAAqB;EACrE,IAAI;IACF,OAAON,OAAO,CAACO,OAAO,CAACF,IAAI,EAAE;MAC3BG,KAAK,EAAEF;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOL,CAAU,EAAE;IACnB,OAAOA,CAAC;EACV;AACF,CAAC;AAED,MAAMQ,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAACC,MAAM,CAAC,CAACC,GAAa,EAAEC,GAAG,KAAK;EAC7ED,GAAG,CAACE,IAAI,CAAC,SAASD,GAAG,EAAE,CAAC;EACxBD,GAAG,CAACE,IAAI,CAACD,GAAG,CAAC;EACb,OAAOD,GAAG;AACZ,CAAC,EAAE,EAAE,CAAC;AAEC,MAAMG,WAAW,GAAGA,CACzBC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACJ;EACX,MAAMX,KAAK,GAAG,CAACU,QAAQ,EAAE,GAAGC,KAAK,CAAC,CAACC,GAAG,CAAEC,CAAC,IAAKC,aAAI,CAACC,OAAO,CAACF,CAAC,CAAC,CAAC;EAC9D,MAAMG,QAAQ,GAAGlB,WAAW,CAACW,IAAI,EAAET,KAAK,CAAC;EACzC,IAAI,EAAEgB,QAAQ,YAAYC,KAAK,CAAC,EAAE;IAChC,OAAOD,QAAQ;EACjB;;EAEA;EACA,KAAK,MAAME,MAAM,IAAIf,QAAQ,EAAE;IAC7B,MAAMgB,kBAAkB,GAAGrB,WAAW,CAACW,IAAI,GAAGS,MAAM,EAAElB,KAAK,CAAC;IAC5D,IAAImB,kBAAkB,YAAYF,KAAK,EAAE;MACvC;MACA;IACF;IAEA,OAAOE,kBAAkB;EAC3B;EAEA,MAAMH,QAAQ;AAChB,CAAC;AAACI,OAAA,CAAAZ,WAAA,GAAAA,WAAA;AAEK,MAAMa,oBAAoB,GAAGA,CAClCZ,IAAY,EACZC,QAAgB,EAChBC,KAAe,KACK;EACpB,MAAMK,QAAQ,GAAGR,WAAW,CAACC,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC;EACnD,OAAOW,OAAO,CAACrB,OAAO,CAACe,QAAQ,CAAC;AAClC,CAAC;AAACI,OAAA,CAAAC,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asyncResolverFactory = void 0;
|
|
7
|
+
const asyncResolverFactory = (onResolve, mapper) => {
|
|
8
|
+
const memoizedSyncResolve = new WeakMap();
|
|
9
|
+
return resolveFn => {
|
|
10
|
+
if (!memoizedSyncResolve.has(resolveFn)) {
|
|
11
|
+
const fn = (what, importer, stack) => resolveFn(...mapper(what, importer, stack)).then(resolved => onResolve(resolved, what, importer, stack));
|
|
12
|
+
memoizedSyncResolve.set(resolveFn, fn);
|
|
13
|
+
}
|
|
14
|
+
return memoizedSyncResolve.get(resolveFn);
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
exports.asyncResolverFactory = asyncResolverFactory;
|
|
18
|
+
//# sourceMappingURL=asyncResolverFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asyncResolverFactory.js","names":["asyncResolverFactory","onResolve","mapper","memoizedSyncResolve","WeakMap","resolveFn","has","fn","what","importer","stack","then","resolved","set","get","exports"],"sources":["../src/asyncResolverFactory.ts"],"sourcesContent":["export const asyncResolverFactory = <\n TResolved,\n const TResolverArgs extends readonly unknown[],\n TResolve extends (...args: TResolverArgs) => Promise<TResolved>,\n>(\n onResolve: (\n resolved: TResolved,\n what: string,\n importer: string,\n stack: string[]\n ) => Promise<string | null>,\n mapper: (what: string, importer: string, stack: string[]) => TResolverArgs\n) => {\n const memoizedSyncResolve = new WeakMap<\n TResolve,\n (what: string, importer: string, stack: string[]) => Promise<string | null>\n >();\n\n return (resolveFn: TResolve) => {\n if (!memoizedSyncResolve.has(resolveFn)) {\n const fn = (\n what: string,\n importer: string,\n stack: string[]\n ): Promise<string | null> =>\n resolveFn(...mapper(what, importer, stack)).then((resolved) =>\n onResolve(resolved, what, importer, stack)\n );\n\n memoizedSyncResolve.set(resolveFn, fn);\n }\n\n return memoizedSyncResolve.get(resolveFn)!;\n };\n};\n"],"mappings":";;;;;;AAAO,MAAMA,oBAAoB,GAAGA,CAKlCC,SAK2B,EAC3BC,MAA0E,KACvE;EACH,MAAMC,mBAAmB,GAAG,IAAIC,OAAO,CAGrC,CAAC;EAEH,OAAQC,SAAmB,IAAK;IAC9B,IAAI,CAACF,mBAAmB,CAACG,GAAG,CAACD,SAAS,CAAC,EAAE;MACvC,MAAME,EAAE,GAAGA,CACTC,IAAY,EACZC,QAAgB,EAChBC,KAAe,KAEfL,SAAS,CAAC,GAAGH,MAAM,CAACM,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAAC,CAAC,CAACC,IAAI,CAAEC,QAAQ,IACxDX,SAAS,CAACW,QAAQ,EAAEJ,IAAI,EAAEC,QAAQ,EAAEC,KAAK,CAC3C,CAAC;MAEHP,mBAAmB,CAACU,GAAG,CAACR,SAAS,EAAEE,EAAE,CAAC;IACxC;IAEA,OAAOJ,mBAAmB,CAACW,GAAG,CAACT,SAAS,CAAC;EAC3C,CAAC;AACH,CAAC;AAACU,OAAA,CAAAf,oBAAA,GAAAA,oBAAA","ignoreList":[]}
|
package/lib/babel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"babel.js","names":[],"sources":["../src/babel.ts"],"sourcesContent":["import type core from '@babel/core';\n\nexport type Core = typeof core;\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"babel.js","names":[],"sources":["../src/babel.ts"],"sourcesContent":["import type core from '@babel/core';\n\nexport type Core = typeof core;\n"],"mappings":"","ignoreList":[]}
|
package/lib/findPackageJSON.js
CHANGED
|
@@ -4,10 +4,23 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.findPackageJSON = findPackageJSON;
|
|
7
|
+
var _fs = require("fs");
|
|
7
8
|
var _path = require("path");
|
|
8
9
|
var _findUp = _interopRequireDefault(require("find-up"));
|
|
9
|
-
function _interopRequireDefault(
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
11
|
const cache = new Map();
|
|
12
|
+
function findSelfPackageJSON(pkgName, filename) {
|
|
13
|
+
const packageJSONPath = _findUp.default.sync('package.json', {
|
|
14
|
+
cwd: (0, _path.dirname)(filename)
|
|
15
|
+
});
|
|
16
|
+
if (!packageJSONPath) return undefined;
|
|
17
|
+
try {
|
|
18
|
+
const packageJSON = JSON.parse((0, _fs.readFileSync)(packageJSONPath, 'utf8'));
|
|
19
|
+
return (packageJSON === null || packageJSON === void 0 ? void 0 : packageJSON.name) === pkgName ? packageJSONPath : undefined;
|
|
20
|
+
} catch {
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
11
24
|
function findPackageJSON(pkgName, filename) {
|
|
12
25
|
var _globalThis$process;
|
|
13
26
|
// Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined
|
|
@@ -26,6 +39,28 @@ function findPackageJSON(pkgName, filename) {
|
|
|
26
39
|
} catch (er) {
|
|
27
40
|
const code = typeof er === 'object' && er !== null && 'code' in er ? er.code : undefined;
|
|
28
41
|
if (code === 'MODULE_NOT_FOUND') {
|
|
42
|
+
if (filename) {
|
|
43
|
+
// Bun doesn't expose workspace packages via `require.resolve`, but tests
|
|
44
|
+
// and tooling can still reference the current package by name.
|
|
45
|
+
const selfPackageJSON = findSelfPackageJSON(pkgName, filename);
|
|
46
|
+
if (selfPackageJSON) {
|
|
47
|
+
return selfPackageJSON;
|
|
48
|
+
}
|
|
49
|
+
const bun = globalThis.Bun;
|
|
50
|
+
if (bun && typeof bun.resolveSync === 'function') {
|
|
51
|
+
try {
|
|
52
|
+
const resolved = bun.resolveSync(pkgName, filename);
|
|
53
|
+
if (!cache.has(resolved)) {
|
|
54
|
+
cache.set(resolved, _findUp.default.sync('package.json', {
|
|
55
|
+
cwd: resolved
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
return cache.get(resolved);
|
|
59
|
+
} catch {
|
|
60
|
+
// fall through to the existing resolution heuristics
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
29
64
|
if (skipPathsOptions && filename) {
|
|
30
65
|
return findPackageJSON(pkgName, null);
|
|
31
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findPackageJSON.js","names":["
|
|
1
|
+
{"version":3,"file":"findPackageJSON.js","names":["_fs","require","_path","_findUp","_interopRequireDefault","e","__esModule","default","cache","Map","findSelfPackageJSON","pkgName","filename","packageJSONPath","findUp","sync","cwd","dirname","undefined","packageJSON","JSON","parse","readFileSync","name","findPackageJSON","_globalThis$process","isJest","Boolean","globalThis","process","env","JEST_WORKER_ID","skipPathsOptions","startsWith","pkgPath","isAbsolute","resolve","paths","has","set","get","er","code","selfPackageJSON","bun","Bun","resolveSync","resolved"],"sources":["../src/findPackageJSON.ts"],"sourcesContent":["import { readFileSync } from 'fs';\nimport { dirname, isAbsolute } from 'path';\nimport findUp from 'find-up';\n\nconst cache = new Map<string, string | undefined>();\n\nfunction findSelfPackageJSON(pkgName: string, filename: string) {\n const packageJSONPath = findUp.sync('package.json', {\n cwd: dirname(filename),\n });\n if (!packageJSONPath) return undefined;\n\n try {\n const packageJSON = JSON.parse(readFileSync(packageJSONPath, 'utf8'));\n return packageJSON?.name === pkgName ? packageJSONPath : undefined;\n } catch {\n return undefined;\n }\n}\n\nexport function findPackageJSON(\n pkgName: string,\n filename: string | null | undefined\n) {\n // Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined\n const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);\n const skipPathsOptions = isJest && !pkgName.startsWith('.');\n\n try {\n const pkgPath =\n pkgName === '.' && filename && isAbsolute(filename)\n ? filename\n : require.resolve(\n pkgName,\n filename ? { paths: [dirname(filename)] } : {}\n );\n if (!cache.has(pkgPath)) {\n cache.set(pkgPath, findUp.sync('package.json', { cwd: pkgPath }));\n }\n\n return cache.get(pkgPath);\n } catch (er: unknown) {\n const code =\n typeof er === 'object' && er !== null && 'code' in er\n ? er.code\n : undefined;\n\n if (code === 'MODULE_NOT_FOUND') {\n if (filename) {\n // Bun doesn't expose workspace packages via `require.resolve`, but tests\n // and tooling can still reference the current package by name.\n const selfPackageJSON = findSelfPackageJSON(pkgName, filename);\n if (selfPackageJSON) {\n return selfPackageJSON;\n }\n\n const bun = (\n globalThis as typeof globalThis & {\n Bun?: {\n resolveSync?: (specifier: string, from: string) => string;\n };\n }\n ).Bun;\n if (bun && typeof bun.resolveSync === 'function') {\n try {\n const resolved = bun.resolveSync(pkgName, filename);\n if (!cache.has(resolved)) {\n cache.set(\n resolved,\n findUp.sync('package.json', {\n cwd: resolved,\n })\n );\n }\n\n return cache.get(resolved);\n } catch {\n // fall through to the existing resolution heuristics\n }\n }\n }\n\n if (skipPathsOptions && filename) {\n return findPackageJSON(pkgName, null);\n }\n\n return undefined;\n }\n\n if (code === 'ERR_PACKAGE_PATH_NOT_EXPORTED') {\n // See https://github.com/Anber/wyw-in-js/issues/43\n // `require` can't resolve ESM-only packages. We can use the `resolve`\n // package here, but it does not solve all cases because `pkgName`\n // can be an alias and should be resolved by a bundler. However, we can't use\n // `resolve` from a bundler because it is async. The good news is that in that\n // specific case, we can just ignore those packages. For now.\n return undefined;\n }\n\n throw er;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,GAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAC,sBAAA,CAAAH,OAAA;AAA6B,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7B,MAAMG,KAAK,GAAG,IAAIC,GAAG,CAA6B,CAAC;AAEnD,SAASC,mBAAmBA,CAACC,OAAe,EAAEC,QAAgB,EAAE;EAC9D,MAAMC,eAAe,GAAGC,eAAM,CAACC,IAAI,CAAC,cAAc,EAAE;IAClDC,GAAG,EAAE,IAAAC,aAAO,EAACL,QAAQ;EACvB,CAAC,CAAC;EACF,IAAI,CAACC,eAAe,EAAE,OAAOK,SAAS;EAEtC,IAAI;IACF,MAAMC,WAAW,GAAGC,IAAI,CAACC,KAAK,CAAC,IAAAC,gBAAY,EAACT,eAAe,EAAE,MAAM,CAAC,CAAC;IACrE,OAAO,CAAAM,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEI,IAAI,MAAKZ,OAAO,GAAGE,eAAe,GAAGK,SAAS;EACpE,CAAC,CAAC,MAAM;IACN,OAAOA,SAAS;EAClB;AACF;AAEO,SAASM,eAAeA,CAC7Bb,OAAe,EACfC,QAAmC,EACnC;EAAA,IAAAa,mBAAA;EACA;EACA,MAAMC,MAAM,GAAGC,OAAO,EAAAF,mBAAA,GAACG,UAAU,CAACC,OAAO,cAAAJ,mBAAA,gBAAAA,mBAAA,GAAlBA,mBAAA,CAAoBK,GAAG,cAAAL,mBAAA,uBAAvBA,mBAAA,CAAyBM,cAAc,CAAC;EAC/D,MAAMC,gBAAgB,GAAGN,MAAM,IAAI,CAACf,OAAO,CAACsB,UAAU,CAAC,GAAG,CAAC;EAE3D,IAAI;IACF,MAAMC,OAAO,GACXvB,OAAO,KAAK,GAAG,IAAIC,QAAQ,IAAI,IAAAuB,gBAAU,EAACvB,QAAQ,CAAC,GAC/CA,QAAQ,GACRX,OAAO,CAACmC,OAAO,CACbzB,OAAO,EACPC,QAAQ,GAAG;MAAEyB,KAAK,EAAE,CAAC,IAAApB,aAAO,EAACL,QAAQ,CAAC;IAAE,CAAC,GAAG,CAAC,CAC/C,CAAC;IACP,IAAI,CAACJ,KAAK,CAAC8B,GAAG,CAACJ,OAAO,CAAC,EAAE;MACvB1B,KAAK,CAAC+B,GAAG,CAACL,OAAO,EAAEpB,eAAM,CAACC,IAAI,CAAC,cAAc,EAAE;QAAEC,GAAG,EAAEkB;MAAQ,CAAC,CAAC,CAAC;IACnE;IAEA,OAAO1B,KAAK,CAACgC,GAAG,CAACN,OAAO,CAAC;EAC3B,CAAC,CAAC,OAAOO,EAAW,EAAE;IACpB,MAAMC,IAAI,GACR,OAAOD,EAAE,KAAK,QAAQ,IAAIA,EAAE,KAAK,IAAI,IAAI,MAAM,IAAIA,EAAE,GACjDA,EAAE,CAACC,IAAI,GACPxB,SAAS;IAEf,IAAIwB,IAAI,KAAK,kBAAkB,EAAE;MAC/B,IAAI9B,QAAQ,EAAE;QACZ;QACA;QACA,MAAM+B,eAAe,GAAGjC,mBAAmB,CAACC,OAAO,EAAEC,QAAQ,CAAC;QAC9D,IAAI+B,eAAe,EAAE;UACnB,OAAOA,eAAe;QACxB;QAEA,MAAMC,GAAG,GACPhB,UAAU,CAKViB,GAAG;QACL,IAAID,GAAG,IAAI,OAAOA,GAAG,CAACE,WAAW,KAAK,UAAU,EAAE;UAChD,IAAI;YACF,MAAMC,QAAQ,GAAGH,GAAG,CAACE,WAAW,CAACnC,OAAO,EAAEC,QAAQ,CAAC;YACnD,IAAI,CAACJ,KAAK,CAAC8B,GAAG,CAACS,QAAQ,CAAC,EAAE;cACxBvC,KAAK,CAAC+B,GAAG,CACPQ,QAAQ,EACRjC,eAAM,CAACC,IAAI,CAAC,cAAc,EAAE;gBAC1BC,GAAG,EAAE+B;cACP,CAAC,CACH,CAAC;YACH;YAEA,OAAOvC,KAAK,CAACgC,GAAG,CAACO,QAAQ,CAAC;UAC5B,CAAC,CAAC,MAAM;YACN;UAAA;QAEJ;MACF;MAEA,IAAIf,gBAAgB,IAAIpB,QAAQ,EAAE;QAChC,OAAOY,eAAe,CAACb,OAAO,EAAE,IAAI,CAAC;MACvC;MAEA,OAAOO,SAAS;IAClB;IAEA,IAAIwB,IAAI,KAAK,+BAA+B,EAAE;MAC5C;MACA;MACA;MACA;MACA;MACA;MACA,OAAOxB,SAAS;IAClB;IAEA,MAAMuB,EAAE;EACV;AACF","ignoreList":[]}
|
package/lib/hasEvalMeta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hasEvalMeta.js","names":["hasEvalMeta","value"],"sources":["../src/hasEvalMeta.ts"],"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"mappings":";;;;;;AAEO,SAASA,WAAWA,CAACC,KAAc,EAAwB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,YAAY,IAAIA,KAAK;AAC7E"}
|
|
1
|
+
{"version":3,"file":"hasEvalMeta.js","names":["hasEvalMeta","value"],"sources":["../src/hasEvalMeta.ts"],"sourcesContent":["import type { WYWEvalMeta } from './types';\n\nexport function hasEvalMeta(value: unknown): value is WYWEvalMeta {\n return typeof value === 'object' && value !== null && '__wyw_meta' in value;\n}\n"],"mappings":";;;;;;AAEO,SAASA,WAAWA,CAACC,KAAc,EAAwB;EAChE,OAAO,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,IAAI,YAAY,IAAIA,KAAK;AAC7E","ignoreList":[]}
|
package/lib/index.js
CHANGED
|
@@ -21,6 +21,12 @@ Object.defineProperty(exports, "asyncResolveFallback", {
|
|
|
21
21
|
return _asyncResolveFallback.asyncResolveFallback;
|
|
22
22
|
}
|
|
23
23
|
});
|
|
24
|
+
Object.defineProperty(exports, "asyncResolverFactory", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () {
|
|
27
|
+
return _asyncResolverFactory.asyncResolverFactory;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
24
30
|
Object.defineProperty(exports, "enableDebug", {
|
|
25
31
|
enumerable: true,
|
|
26
32
|
get: function () {
|
|
@@ -71,6 +77,7 @@ Object.defineProperty(exports, "syncResolve", {
|
|
|
71
77
|
});
|
|
72
78
|
var _debug = require("debug");
|
|
73
79
|
var _asyncResolveFallback = require("./asyncResolveFallback");
|
|
80
|
+
var _asyncResolverFactory = require("./asyncResolverFactory");
|
|
74
81
|
var _hasEvalMeta = require("./hasEvalMeta");
|
|
75
82
|
var _findPackageJSON = require("./findPackageJSON");
|
|
76
83
|
var _isBoxedPrimitive = require("./isBoxedPrimitive");
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_debug","require","_asyncResolveFallback","_hasEvalMeta","_findPackageJSON","_isBoxedPrimitive","_logger","_isFeatureEnabled","_slugify","_types"],"sources":["../src/index.ts"],"sourcesContent":["export { Debugger } from 'debug';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n StrictOptions,\n EvalRule,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n BuildCodeFrameErrorFn,\n ConstValue,\n ExpressionValue,\n FunctionValue,\n ICSSRule,\n LazyValue,\n Location,\n Replacement,\n Replacements,\n Rules,\n WYWEvalMeta,\n} from './types';\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_debug","require","_asyncResolveFallback","_asyncResolverFactory","_hasEvalMeta","_findPackageJSON","_isBoxedPrimitive","_logger","_isFeatureEnabled","_slugify","_types"],"sources":["../src/index.ts"],"sourcesContent":["export { Debugger } from 'debug';\n\nexport { asyncResolveFallback, syncResolve } from './asyncResolveFallback';\nexport { asyncResolverFactory } from './asyncResolverFactory';\nexport { hasEvalMeta } from './hasEvalMeta';\nexport { findPackageJSON } from './findPackageJSON';\nexport { isBoxedPrimitive } from './isBoxedPrimitive';\nexport { enableDebug, logger } from './logger';\nexport { isFeatureEnabled } from './options/isFeatureEnabled';\nexport { slugify } from './slugify';\nexport { ValueType } from './types';\n\nexport type { IVariableContext } from './IVariableContext';\nexport type {\n ClassNameSlugVars,\n ClassNameFn,\n CodeRemoverOptions,\n ImportLoader,\n ImportLoaderContext,\n ImportLoaders,\n ImportOverride,\n ImportOverrides,\n TagResolverMeta,\n StrictOptions,\n EvalRule,\n Evaluator,\n FeatureFlag,\n EvaluatorConfig,\n FeatureFlags,\n VariableNameFn,\n} from './options/types';\nexport type {\n Artifact,\n BuildCodeFrameErrorFn,\n ConstValue,\n ExpressionValue,\n FunctionValue,\n ICSSRule,\n LazyValue,\n Location,\n Replacement,\n Replacements,\n Rules,\n WYWEvalMeta,\n} from './types';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,qBAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AACA,IAAAI,gBAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AACA,IAAAO,iBAAA,GAAAP,OAAA;AACA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isBoxedPrimitive.js","names":["constructors","isBoxedPrimitive","o","includes","constructor","name","valueOf"],"sources":["../src/isBoxedPrimitive.ts"],"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"mappings":";;;;;;AAAA;AACA;;AAEA,MAAMA,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAClC,SAASC,gBAAgBA,CAACC,CAAU,EAAwB;EACjE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACrD,OACEF,YAAY,CAACG,QAAQ,CAACD,CAAC,CAACE,WAAW,CAACC,IAAI,CAAC,IACzC,QAAOH,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEI,OAAO,CAAC,CAAC,MAAK,QAAQ;AAEpC"}
|
|
1
|
+
{"version":3,"file":"isBoxedPrimitive.js","names":["constructors","isBoxedPrimitive","o","includes","constructor","name","valueOf"],"sources":["../src/isBoxedPrimitive.ts"],"sourcesContent":["// There is a problem with using boxed numbers and strings in TS,\n// so we cannot just use `instanceof` here\n\nconst constructors = ['Number', 'String'];\nexport function isBoxedPrimitive(o: unknown): o is number | string {\n if (typeof o !== 'object' || o === null) return false;\n return (\n constructors.includes(o.constructor.name) &&\n typeof o?.valueOf() !== 'object'\n );\n}\n"],"mappings":";;;;;;AAAA;AACA;;AAEA,MAAMA,YAAY,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAClC,SAASC,gBAAgBA,CAACC,CAAU,EAAwB;EACjE,IAAI,OAAOA,CAAC,KAAK,QAAQ,IAAIA,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACrD,OACEF,YAAY,CAACG,QAAQ,CAACD,CAAC,CAACE,WAAW,CAACC,IAAI,CAAC,IACzC,QAAOH,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEI,OAAO,CAAC,CAAC,MAAK,QAAQ;AAEpC","ignoreList":[]}
|
package/lib/logger.js
CHANGED
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.enableDebug = enableDebug;
|
|
7
7
|
exports.logger = void 0;
|
|
8
8
|
var _debug = _interopRequireDefault(require("debug"));
|
|
9
|
-
function _interopRequireDefault(
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
const BASE_NAMESPACE = 'wyw-in-js';
|
|
11
11
|
const logger = exports.logger = (0, _debug.default)(BASE_NAMESPACE);
|
|
12
12
|
const loggers = new Map();
|
package/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","names":["_debug","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"logger.js","names":["_debug","_interopRequireDefault","require","e","__esModule","default","BASE_NAMESPACE","logger","exports","genericDebug","loggers","Map","gerOrCreate","namespace","lastIndexOf","has","set","substring","extend","get","formatters","r","ref","_ref$text","text","color","parseInt","colorCode","f","fn","JSON","stringify","enableDebug","enable"],"sources":["../src/logger.ts"],"sourcesContent":["import genericDebug from 'debug';\nimport type { Debugger } from 'debug';\n\nconst BASE_NAMESPACE = 'wyw-in-js';\n\nexport const logger = genericDebug(BASE_NAMESPACE);\n\nconst loggers = new Map<string, Debugger>();\n\nfunction gerOrCreate(namespace: string | null | undefined): Debugger {\n if (!namespace) return logger;\n const lastIndexOf = namespace.lastIndexOf(':');\n if (!loggers.has(namespace)) {\n loggers.set(\n namespace,\n gerOrCreate(namespace.substring(0, lastIndexOf)).extend(\n namespace.substring(lastIndexOf + 1)\n )\n );\n }\n\n return loggers.get(namespace)!;\n}\n\ngenericDebug.formatters.r = (\n ref: string | { namespace: string; text?: string }\n) => {\n const namespace = typeof ref === 'string' ? ref : ref.namespace;\n const text = typeof ref === 'string' ? namespace : ref.text ?? namespace;\n const color = parseInt(gerOrCreate(namespace).color, 10);\n const colorCode = `\\u001B[3${color < 8 ? color : `8;5;${color}`}`;\n return `${colorCode};1m${text}\\u001B[0m`;\n};\n\ngenericDebug.formatters.f = function f(fn: () => unknown) {\n return JSON.stringify(fn());\n};\n\nexport function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {\n genericDebug.enable(namespace);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAAiC,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAGjC,MAAMG,cAAc,GAAG,WAAW;AAE3B,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAG,IAAAE,cAAY,EAACH,cAAc,CAAC;AAElD,MAAMI,OAAO,GAAG,IAAIC,GAAG,CAAmB,CAAC;AAE3C,SAASC,WAAWA,CAACC,SAAoC,EAAY;EACnE,IAAI,CAACA,SAAS,EAAE,OAAON,MAAM;EAC7B,MAAMO,WAAW,GAAGD,SAAS,CAACC,WAAW,CAAC,GAAG,CAAC;EAC9C,IAAI,CAACJ,OAAO,CAACK,GAAG,CAACF,SAAS,CAAC,EAAE;IAC3BH,OAAO,CAACM,GAAG,CACTH,SAAS,EACTD,WAAW,CAACC,SAAS,CAACI,SAAS,CAAC,CAAC,EAAEH,WAAW,CAAC,CAAC,CAACI,MAAM,CACrDL,SAAS,CAACI,SAAS,CAACH,WAAW,GAAG,CAAC,CACrC,CACF,CAAC;EACH;EAEA,OAAOJ,OAAO,CAACS,GAAG,CAACN,SAAS,CAAC;AAC/B;AAEAJ,cAAY,CAACW,UAAU,CAACC,CAAC,GACvBC,GAAkD,IAC/C;EAAA,IAAAC,SAAA;EACH,MAAMV,SAAS,GAAG,OAAOS,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGA,GAAG,CAACT,SAAS;EAC/D,MAAMW,IAAI,GAAG,OAAOF,GAAG,KAAK,QAAQ,GAAGT,SAAS,IAAAU,SAAA,GAAGD,GAAG,CAACE,IAAI,cAAAD,SAAA,cAAAA,SAAA,GAAIV,SAAS;EACxE,MAAMY,KAAK,GAAGC,QAAQ,CAACd,WAAW,CAACC,SAAS,CAAC,CAACY,KAAK,EAAE,EAAE,CAAC;EACxD,MAAME,SAAS,GAAG,WAAWF,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,OAAOA,KAAK,EAAE,EAAE;EACjE,OAAO,GAAGE,SAAS,MAAMH,IAAI,WAAW;AAC1C,CAAC;AAEDf,cAAY,CAACW,UAAU,CAACQ,CAAC,GAAG,SAASA,CAACA,CAACC,EAAiB,EAAE;EACxD,OAAOC,IAAI,CAACC,SAAS,CAACF,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AAEM,SAASG,WAAWA,CAACnB,SAAS,GAAG,GAAGP,cAAc,IAAI,EAAE;EAC7DG,cAAY,CAACwB,MAAM,CAACpB,SAAS,CAAC;AAChC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isFeatureEnabled.js","names":["_minimatch","require","cachedMatchers","Map","isFeatureEnabled","features","featureName","filename","_features$featureName","value","array","Array","isArray","map","pattern","matcher","get","startsWith","Minimatch","set","match","reduce","acc","negated","exports"],"sources":["../../src/options/isFeatureEnabled.ts"],"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIA;;AAGA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAG5B,CAAC;AAEI,MAAMC,gBAAgB,GAAGA,CAC9BC,QAIa,EACbC,WAAuB,EACvBC,QAAgB,KACb;EAAA,IAAAC,qBAAA;EACH,MAAMC,KAAK,IAAAD,qBAAA,GAAGH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGC,WAAW,CAAC,cAAAE,qBAAA,cAAAA,qBAAA,GAAI,KAAK;EAC9C,IAAI,OAAOC,KAAK,KAAK,SAAS,EAAE;IAC9B,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,EAAE;IACrC,OAAO,IAAI;EACb;EAEA,MAAMC,KAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;;EAE9D;AACF;AACA;EACE,OAAOC,KAAK,CACTG,GAAG,CAAEC,OAAO,IAAK;IAChB,IAAIC,OAAO,GAAGb,cAAc,CAACc,GAAG,CAACF,OAAO,CAAC;IACzC,IAAI,CAACC,OAAO,EAAE;MACZA,OAAO,GAAG,CAACD,OAAO,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAIC,oBAAS,CAACJ,OAAO,CAAC,CAAC;MAC3DZ,cAAc,CAACiB,GAAG,CAACL,OAAO,EAAEC,OAAO,CAAC;IACtC;IAEA,OAAO,CAACA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAACK,KAAK,CAACb,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CACDc,MAAM,CACL,CAACC,GAAG,EAAE,CAACC,OAAO,EAAEH,KAAK,CAAC,KAAMG,OAAO,GAAGD,GAAG,IAAIF,KAAK,GAAGE,GAAG,IAAIF,KAAM,EAClE,KACF,CAAC;AACL,CAAC;AAACI,OAAA,CAAApB,gBAAA,GAAAA,gBAAA"}
|
|
1
|
+
{"version":3,"file":"isFeatureEnabled.js","names":["_minimatch","require","cachedMatchers","Map","isFeatureEnabled","features","featureName","filename","_features$featureName","value","array","Array","isArray","map","pattern","matcher","get","startsWith","Minimatch","set","match","reduce","acc","negated","exports"],"sources":["../../src/options/isFeatureEnabled.ts"],"sourcesContent":["import { Minimatch } from 'minimatch';\n\nimport type { FeatureFlag } from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype NoInfer<T> = [T][T extends any ? 0 : never];\n\nconst cachedMatchers = new Map<\n string,\n [nagated: boolean, matcher: Minimatch]\n>();\n\nexport const isFeatureEnabled = <T extends string>(\n features:\n | {\n [K in T]?: FeatureFlag;\n }\n | undefined,\n featureName: NoInfer<T>,\n filename: string\n) => {\n const value = features?.[featureName] ?? false;\n if (typeof value === 'boolean') {\n return value;\n }\n\n // Fast check for glob patterns\n if (value === '*' || value === '**/*') {\n return true;\n }\n\n const array: string[] = Array.isArray(value) ? value : [value];\n\n /**\n * Check rule by rule like .gitignore\n */\n return array\n .map((pattern) => {\n let matcher = cachedMatchers.get(pattern);\n if (!matcher) {\n matcher = [pattern.startsWith('!'), new Minimatch(pattern)];\n cachedMatchers.set(pattern, matcher);\n }\n\n return [matcher[0], matcher[1].match(filename)];\n })\n .reduce(\n (acc, [negated, match]) => (negated ? acc && match : acc || match),\n false\n );\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAIA;;AAGA,MAAMC,cAAc,GAAG,IAAIC,GAAG,CAG5B,CAAC;AAEI,MAAMC,gBAAgB,GAAGA,CAC9BC,QAIa,EACbC,WAAuB,EACvBC,QAAgB,KACb;EAAA,IAAAC,qBAAA;EACH,MAAMC,KAAK,IAAAD,qBAAA,GAAGH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGC,WAAW,CAAC,cAAAE,qBAAA,cAAAA,qBAAA,GAAI,KAAK;EAC9C,IAAI,OAAOC,KAAK,KAAK,SAAS,EAAE;IAC9B,OAAOA,KAAK;EACd;;EAEA;EACA,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,EAAE;IACrC,OAAO,IAAI;EACb;EAEA,MAAMC,KAAe,GAAGC,KAAK,CAACC,OAAO,CAACH,KAAK,CAAC,GAAGA,KAAK,GAAG,CAACA,KAAK,CAAC;;EAE9D;AACF;AACA;EACE,OAAOC,KAAK,CACTG,GAAG,CAAEC,OAAO,IAAK;IAChB,IAAIC,OAAO,GAAGb,cAAc,CAACc,GAAG,CAACF,OAAO,CAAC;IACzC,IAAI,CAACC,OAAO,EAAE;MACZA,OAAO,GAAG,CAACD,OAAO,CAACG,UAAU,CAAC,GAAG,CAAC,EAAE,IAAIC,oBAAS,CAACJ,OAAO,CAAC,CAAC;MAC3DZ,cAAc,CAACiB,GAAG,CAACL,OAAO,EAAEC,OAAO,CAAC;IACtC;IAEA,OAAO,CAACA,OAAO,CAAC,CAAC,CAAC,EAAEA,OAAO,CAAC,CAAC,CAAC,CAACK,KAAK,CAACb,QAAQ,CAAC,CAAC;EACjD,CAAC,CAAC,CACDc,MAAM,CACL,CAACC,GAAG,EAAE,CAACC,OAAO,EAAEH,KAAK,CAAC,KAAMG,OAAO,GAAGD,GAAG,IAAIF,KAAK,GAAGE,GAAG,IAAIF,KAAM,EAClE,KACF,CAAC;AACL,CAAC;AAACI,OAAA,CAAApB,gBAAA,GAAAA,gBAAA","ignoreList":[]}
|
package/lib/options/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../src/options/types.ts"],"sourcesContent":["import type { TransformOptions } from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { IVariableContext } from '../IVariableContext';\nimport type { Core } from '../babel';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype VmContext = Record<string, any>; // It's Context from `vm`\n\nexport type ClassNameSlugVars = {\n dir: string;\n ext: string;\n file: string;\n hash: string;\n index: number;\n name: string;\n title: string;\n};\n\nexport type ClassNameFn = (\n hash: string,\n title: string,\n args: ClassNameSlugVars\n) => string;\n\nexport type VariableNameFn = (context: IVariableContext) => string;\n\nexport type EvaluatorConfig = {\n features: StrictOptions['features'];\n highPriorityPlugins: string[];\n onlyExports: string[];\n};\n\nexport type Evaluator = (\n evalConfig: TransformOptions,\n ast: File,\n code: string,\n config: EvaluatorConfig,\n babel: Core\n) => [\n ast: File,\n code: string,\n imports: Map<string, string[]> | null,\n exports?: string[] | null,\n];\n\nexport type EvalRule = {\n action: Evaluator | 'ignore' | string;\n babelOptions?: TransformOptions;\n test?: RegExp | ((path: string, code: string) => boolean);\n};\n\nexport type FeatureFlag = boolean | string | string[];\n\ntype AllFeatureFlags = {\n dangerousCodeRemover: FeatureFlag;\n globalCache: FeatureFlag;\n happyDOM: FeatureFlag;\n softErrors: FeatureFlag;\n useBabelConfigs: FeatureFlag;\n useWeakRefInEval: FeatureFlag;\n};\n\nexport type FeatureFlags<\n TOnly extends keyof AllFeatureFlags = keyof AllFeatureFlags,\n> = Pick<AllFeatureFlags, TOnly>;\n\nexport type CodeRemoverOptions = {\n componentTypes?: Record<string, string[]>;\n hocs?: Record<string, string[]>;\n};\n\nexport type StrictOptions = {\n babelOptions: TransformOptions;\n classNameSlug?: string | ClassNameFn;\n codeRemover?: CodeRemoverOptions;\n displayName: boolean;\n evaluate: boolean;\n extensions: string[];\n features: FeatureFlags;\n highPriorityPlugins: string[];\n ignore?: RegExp;\n overrideContext?: (\n context: Partial<VmContext>,\n filename: string\n ) => Partial<VmContext>;\n rules: EvalRule[];\n tagResolver?: (source: string
|
|
1
|
+
{"version":3,"file":"types.js","names":[],"sources":["../../src/options/types.ts"],"sourcesContent":["import type { TransformOptions } from '@babel/core';\nimport type { File } from '@babel/types';\n\nimport type { IVariableContext } from '../IVariableContext';\nimport type { Core } from '../babel';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype VmContext = Record<string, any>; // It's Context from `vm`\n\nexport type ClassNameSlugVars = {\n dir: string;\n ext: string;\n file: string;\n hash: string;\n index: number;\n name: string;\n title: string;\n};\n\nexport type ClassNameFn = (\n hash: string,\n title: string,\n args: ClassNameSlugVars\n) => string;\n\nexport type VariableNameFn = (context: IVariableContext) => string;\n\nexport type EvaluatorConfig = {\n features: StrictOptions['features'];\n highPriorityPlugins: string[];\n importOverrides?: StrictOptions['importOverrides'];\n onlyExports: string[];\n root?: string;\n};\n\nexport type Evaluator = (\n evalConfig: TransformOptions,\n ast: File,\n code: string,\n config: EvaluatorConfig,\n babel: Core\n) => [\n ast: File,\n code: string,\n imports: Map<string, string[]> | null,\n exports?: string[] | null,\n];\n\nexport type EvalRule = {\n action: Evaluator | 'ignore' | string;\n babelOptions?: TransformOptions;\n test?: RegExp | ((path: string, code: string) => boolean);\n};\n\nexport type FeatureFlag = boolean | string | string[];\n\ntype ImportOverrideMock = {\n /**\n * Replaces resolved import with provided specifier (resolved on prepare/eval stages).\n * Raw `source` stays intact; only resolution target changes.\n */\n mock: string;\n noShake?: never;\n unknown?: never;\n};\n\ntype ImportOverrideNoShake = {\n mock?: never;\n /**\n * Disables tree-shaking for this import by forcing `only=['*']`.\n */\n noShake: true;\n unknown?: never;\n};\n\ntype ImportOverrideUnknown = {\n mock?: never;\n noShake?: never;\n /**\n * Controls behavior when an import reaches eval-time Node resolver fallback.\n * - 'warn' (default): warn once per canonical import key.\n * - 'error': throw.\n * - 'allow': no warning, keep load-as-is.\n */\n unknown: 'allow' | 'error' | 'warn';\n};\n\nexport type ImportOverride =\n | ImportOverrideMock\n | ImportOverrideNoShake\n | ImportOverrideUnknown;\n\nexport type ImportOverrides = Record<string, ImportOverride>;\n\nexport type ImportLoaderContext = {\n emitWarning: (message: string) => void;\n filename: string;\n hash: string;\n importer: string;\n query: string;\n readFile: () => string;\n request: string;\n resolved: string;\n toUrl: () => string;\n};\n\nexport type ImportLoader =\n | 'raw'\n | 'url'\n | ((context: ImportLoaderContext) => unknown);\n\nexport type ImportLoaders = Record<string, ImportLoader | false>;\n\nexport type TagResolverMeta = {\n resolvedSource?: string;\n sourceFile: string | null | undefined;\n};\n\ntype AllFeatureFlags = {\n dangerousCodeRemover: FeatureFlag;\n globalCache: FeatureFlag;\n happyDOM: FeatureFlag;\n softErrors: FeatureFlag;\n useBabelConfigs: FeatureFlag;\n useWeakRefInEval: FeatureFlag;\n};\n\nexport type FeatureFlags<\n TOnly extends keyof AllFeatureFlags = keyof AllFeatureFlags,\n> = Pick<AllFeatureFlags, TOnly>;\n\nexport type CodeRemoverOptions = {\n componentTypes?: Record<string, string[]>;\n hocs?: Record<string, string[]>;\n};\n\nexport type StrictOptions = {\n babelOptions: TransformOptions;\n classNameSlug?: string | ClassNameFn;\n codeRemover?: CodeRemoverOptions;\n displayName: boolean;\n evaluate: boolean;\n extensions: string[];\n features: FeatureFlags;\n highPriorityPlugins: string[];\n ignore?: RegExp;\n importLoaders?: ImportLoaders;\n importOverrides?: ImportOverrides;\n overrideContext?: (\n context: Partial<VmContext>,\n filename: string\n ) => Partial<VmContext>;\n rules: EvalRule[];\n tagResolver?: (\n source: string,\n tag: string,\n meta: TagResolverMeta\n ) => string | null;\n variableNameConfig?: 'var' | 'dashes' | 'raw';\n variableNameSlug?: string | VariableNameFn;\n};\n"],"mappings":"","ignoreList":[]}
|
package/lib/slugify.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slugify.js","names":["UInt32","str","pos","charCodeAt","UInt16","Umul32","n","m","nlo","nhi","doHash","seed","r","h","length","currentIndex","k","slugify","code","toString"],"sources":["../src/slugify.ts"],"sourcesContent":["/* eslint-disable no-plusplus, no-bitwise, default-case, no-param-reassign, prefer-destructuring */\n/**\n * This file contains a utility to generate hashes to be used as generated class names\n */\n\n/**\n * murmurhash2 via https://gist.github.com/raycmorgan/588423\n */\n\nfunction UInt32(str: string, pos: number) {\n return (\n str.charCodeAt(pos++) +\n (str.charCodeAt(pos++) << 8) +\n (str.charCodeAt(pos++) << 16) +\n (str.charCodeAt(pos) << 24)\n );\n}\n\nfunction UInt16(str: string, pos: number) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n: number, m: number) {\n n |= 0;\n m |= 0;\n const nlo = n & 0xffff;\n const nhi = n >>> 16;\n return (nlo * m + (((nhi * m) & 0xffff) << 16)) | 0;\n}\n\nfunction doHash(str: string, seed = 0) {\n const m = 0x5bd1e995;\n const r = 24;\n let h = seed ^ str.length;\n let length = str.length;\n let currentIndex = 0;\n\n while (length >= 4) {\n let k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nexport function slugify(code: string) {\n return doHash(code).toString(36);\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAASA,MAAMA,CAACC,GAAW,EAAEC,GAAW,EAAE;EACxC,OACED,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IACpBD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAC3BD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAC5BD,GAAG,CAACE,UAAU,CAACD,GAAG,CAAC,IAAI,EAAE,CAAC;AAE/B;AAEA,SAASE,MAAMA,CAACH,GAAW,EAAEC,GAAW,EAAE;EACxC,OAAOD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAID,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D;AAEA,SAASG,MAAMA,CAACC,CAAS,EAAEC,CAAS,EAAE;EACpCD,CAAC,IAAI,CAAC;EACNC,CAAC,IAAI,CAAC;EACN,MAAMC,GAAG,GAAGF,CAAC,GAAG,MAAM;EACtB,MAAMG,GAAG,GAAGH,CAAC,KAAK,EAAE;EACpB,OAAQE,GAAG,GAAGD,CAAC,IAAI,CAAEE,GAAG,GAAGF,CAAC,GAAI,MAAM,KAAK,EAAE,CAAC,GAAI,CAAC;AACrD;AAEA,SAASG,MAAMA,CAACT,GAAW,EAAEU,IAAI,GAAG,CAAC,EAAE;EACrC,MAAMJ,CAAC,GAAG,UAAU;EACpB,MAAMK,CAAC,GAAG,EAAE;EACZ,IAAIC,CAAC,GAAGF,IAAI,GAAGV,GAAG,CAACa,MAAM;EACzB,IAAIA,MAAM,GAAGb,GAAG,CAACa,MAAM;EACvB,IAAIC,YAAY,GAAG,CAAC;EAEpB,OAAOD,MAAM,IAAI,CAAC,EAAE;IAClB,IAAIE,CAAC,GAAGhB,MAAM,CAACC,GAAG,EAAEc,YAAY,CAAC;IAEjCC,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAChBS,CAAC,IAAIA,CAAC,KAAKJ,CAAC;IACZI,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAEhBM,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;IAChBM,CAAC,IAAIG,CAAC;IAEND,YAAY,IAAI,CAAC;IACjBD,MAAM,IAAI,CAAC;EACb;EAEA,QAAQA,MAAM;IACZ,KAAK,CAAC;MACJD,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE;MAC3CF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,CAAC;MACjCF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;EACJ;EAEAM,CAAC,IAAIA,CAAC,KAAK,EAAE;EACbA,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;EAChBM,CAAC,IAAIA,CAAC,KAAK,EAAE;EAEb,OAAOA,CAAC,KAAK,CAAC;AAChB;AAEO,SAASI,OAAOA,CAACC,IAAY,EAAE;EACpC,OAAOR,MAAM,CAACQ,IAAI,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;AAClC"}
|
|
1
|
+
{"version":3,"file":"slugify.js","names":["UInt32","str","pos","charCodeAt","UInt16","Umul32","n","m","nlo","nhi","doHash","seed","r","h","length","currentIndex","k","slugify","code","toString"],"sources":["../src/slugify.ts"],"sourcesContent":["/* eslint-disable no-plusplus, no-bitwise, default-case, no-param-reassign, prefer-destructuring */\n/**\n * This file contains a utility to generate hashes to be used as generated class names\n */\n\n/**\n * murmurhash2 via https://gist.github.com/raycmorgan/588423\n */\n\nfunction UInt32(str: string, pos: number) {\n return (\n str.charCodeAt(pos++) +\n (str.charCodeAt(pos++) << 8) +\n (str.charCodeAt(pos++) << 16) +\n (str.charCodeAt(pos) << 24)\n );\n}\n\nfunction UInt16(str: string, pos: number) {\n return str.charCodeAt(pos++) + (str.charCodeAt(pos++) << 8);\n}\n\nfunction Umul32(n: number, m: number) {\n n |= 0;\n m |= 0;\n const nlo = n & 0xffff;\n const nhi = n >>> 16;\n return (nlo * m + (((nhi * m) & 0xffff) << 16)) | 0;\n}\n\nfunction doHash(str: string, seed = 0) {\n const m = 0x5bd1e995;\n const r = 24;\n let h = seed ^ str.length;\n let length = str.length;\n let currentIndex = 0;\n\n while (length >= 4) {\n let k = UInt32(str, currentIndex);\n\n k = Umul32(k, m);\n k ^= k >>> r;\n k = Umul32(k, m);\n\n h = Umul32(h, m);\n h ^= k;\n\n currentIndex += 4;\n length -= 4;\n }\n\n switch (length) {\n case 3:\n h ^= UInt16(str, currentIndex);\n h ^= str.charCodeAt(currentIndex + 2) << 16;\n h = Umul32(h, m);\n break;\n\n case 2:\n h ^= UInt16(str, currentIndex);\n h = Umul32(h, m);\n break;\n\n case 1:\n h ^= str.charCodeAt(currentIndex);\n h = Umul32(h, m);\n break;\n }\n\n h ^= h >>> 13;\n h = Umul32(h, m);\n h ^= h >>> 15;\n\n return h >>> 0;\n}\n\nexport function slugify(code: string) {\n return doHash(code).toString(36);\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,SAASA,MAAMA,CAACC,GAAW,EAAEC,GAAW,EAAE;EACxC,OACED,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IACpBD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAC3BD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,IAC5BD,GAAG,CAACE,UAAU,CAACD,GAAG,CAAC,IAAI,EAAE,CAAC;AAE/B;AAEA,SAASE,MAAMA,CAACH,GAAW,EAAEC,GAAW,EAAE;EACxC,OAAOD,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAID,GAAG,CAACE,UAAU,CAACD,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AAC7D;AAEA,SAASG,MAAMA,CAACC,CAAS,EAAEC,CAAS,EAAE;EACpCD,CAAC,IAAI,CAAC;EACNC,CAAC,IAAI,CAAC;EACN,MAAMC,GAAG,GAAGF,CAAC,GAAG,MAAM;EACtB,MAAMG,GAAG,GAAGH,CAAC,KAAK,EAAE;EACpB,OAAQE,GAAG,GAAGD,CAAC,IAAI,CAAEE,GAAG,GAAGF,CAAC,GAAI,MAAM,KAAK,EAAE,CAAC,GAAI,CAAC;AACrD;AAEA,SAASG,MAAMA,CAACT,GAAW,EAAEU,IAAI,GAAG,CAAC,EAAE;EACrC,MAAMJ,CAAC,GAAG,UAAU;EACpB,MAAMK,CAAC,GAAG,EAAE;EACZ,IAAIC,CAAC,GAAGF,IAAI,GAAGV,GAAG,CAACa,MAAM;EACzB,IAAIA,MAAM,GAAGb,GAAG,CAACa,MAAM;EACvB,IAAIC,YAAY,GAAG,CAAC;EAEpB,OAAOD,MAAM,IAAI,CAAC,EAAE;IAClB,IAAIE,CAAC,GAAGhB,MAAM,CAACC,GAAG,EAAEc,YAAY,CAAC;IAEjCC,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAChBS,CAAC,IAAIA,CAAC,KAAKJ,CAAC;IACZI,CAAC,GAAGX,MAAM,CAACW,CAAC,EAAET,CAAC,CAAC;IAEhBM,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;IAChBM,CAAC,IAAIG,CAAC;IAEND,YAAY,IAAI,CAAC;IACjBD,MAAM,IAAI,CAAC;EACb;EAEA,QAAQA,MAAM;IACZ,KAAK,CAAC;MACJD,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE;MAC3CF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIT,MAAM,CAACH,GAAG,EAAEc,YAAY,CAAC;MAC9BF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;IAEF,KAAK,CAAC;MACJM,CAAC,IAAIZ,GAAG,CAACE,UAAU,CAACY,YAAY,CAAC;MACjCF,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;MAChB;EACJ;EAEAM,CAAC,IAAIA,CAAC,KAAK,EAAE;EACbA,CAAC,GAAGR,MAAM,CAACQ,CAAC,EAAEN,CAAC,CAAC;EAChBM,CAAC,IAAIA,CAAC,KAAK,EAAE;EAEb,OAAOA,CAAC,KAAK,CAAC;AAChB;AAEO,SAASI,OAAOA,CAACC,IAAY,EAAE;EACpC,OAAOR,MAAM,CAACQ,IAAI,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;AAClC","ignoreList":[]}
|
package/lib/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":["ValueType","exports"],"sources":["../src/types.ts"],"sourcesContent":["import type {\n BigIntLiteral,\n BooleanLiteral,\n DecimalLiteral,\n Identifier,\n NullLiteral,\n NumericLiteral,\n StringLiteral,\n} from '@babel/types';\n\nexport type Artifact = [name: string, data: unknown];\n\nexport type BuildCodeFrameErrorFn = <TError extends Error>(\n msg: string,\n Error?: new (innerMsg: string) => TError\n) => TError;\n\nexport enum ValueType {\n LAZY,\n FUNCTION,\n CONST,\n}\n\nexport type LazyValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.LAZY;\n source: string;\n};\n\nexport type FunctionValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.FUNCTION;\n source: string;\n};\n\nexport type ConstValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex:\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | DecimalLiteral;\n kind: ValueType.CONST;\n source: string;\n value: string | number | boolean | null;\n};\n\nexport type ExpressionValue = LazyValue | FunctionValue | ConstValue;\n\nexport type WYWEvalMeta = {\n __wyw_meta: {\n className: string;\n extends: WYWEvalMeta;\n };\n};\n\nexport type Location = {\n column: number;\n line: number;\n};\n\nexport type Replacement = {\n length: number;\n original: { end: Location; start: Location };\n};\n\nexport type Replacements = Array<Replacement>;\n\n/**\n * CSS-related types\n */\n\nexport interface ICSSRule {\n atom?: boolean;\n className: string;\n cssText: string;\n displayName: string;\n start: Location | null | undefined;\n}\n\nexport type Rules = Record<string, ICSSRule>;\n"],"mappings":";;;;;;IAiBYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAyDrB;AACA;AACA"}
|
|
1
|
+
{"version":3,"file":"types.js","names":["ValueType","exports"],"sources":["../src/types.ts"],"sourcesContent":["import type {\n BigIntLiteral,\n BooleanLiteral,\n DecimalLiteral,\n Identifier,\n NullLiteral,\n NumericLiteral,\n StringLiteral,\n} from '@babel/types';\n\nexport type Artifact = [name: string, data: unknown];\n\nexport type BuildCodeFrameErrorFn = <TError extends Error>(\n msg: string,\n Error?: new (innerMsg: string) => TError\n) => TError;\n\nexport enum ValueType {\n LAZY,\n FUNCTION,\n CONST,\n}\n\nexport type LazyValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.LAZY;\n source: string;\n};\n\nexport type FunctionValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex: Identifier;\n importedFrom?: string[];\n kind: ValueType.FUNCTION;\n source: string;\n};\n\nexport type ConstValue = {\n buildCodeFrameError: BuildCodeFrameErrorFn;\n ex:\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | DecimalLiteral;\n kind: ValueType.CONST;\n source: string;\n value: string | number | boolean | null;\n};\n\nexport type ExpressionValue = LazyValue | FunctionValue | ConstValue;\n\nexport type WYWEvalMeta = {\n __wyw_meta: {\n className: string;\n extends: WYWEvalMeta;\n };\n};\n\nexport type Location = {\n column: number;\n line: number;\n};\n\nexport type Replacement = {\n length: number;\n original: { end: Location; start: Location };\n};\n\nexport type Replacements = Array<Replacement>;\n\n/**\n * CSS-related types\n */\n\nexport interface ICSSRule {\n atom?: boolean;\n className: string;\n cssText: string;\n displayName: string;\n start: Location | null | undefined;\n}\n\nexport type Rules = Record<string, ICSSRule>;\n"],"mappings":";;;;;;IAiBYA,SAAS,GAAAC,OAAA,CAAAD,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAyDrB;AACA;AACA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wyw-in-js/shared",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"dependencies": {
|
|
5
|
+
"@types/debug": "^4.1.9",
|
|
5
6
|
"debug": "^4.3.4",
|
|
6
7
|
"find-up": "^5.0.0",
|
|
7
8
|
"minimatch": "^9.0.3"
|
|
@@ -9,13 +10,11 @@
|
|
|
9
10
|
"devDependencies": {
|
|
10
11
|
"@babel/types": "^7.23.5",
|
|
11
12
|
"@types/babel__core": "^7.20.5",
|
|
12
|
-
"@types/debug": "^4.1.9",
|
|
13
13
|
"@types/node": "^16.18.55",
|
|
14
|
-
"
|
|
15
|
-
"@wyw-in-js/
|
|
16
|
-
"@wyw-in-js/
|
|
17
|
-
"
|
|
18
|
-
"@wyw-in-js/ts-config": "0.8.1"
|
|
14
|
+
"@wyw-in-js/babel-config": "workspace:*",
|
|
15
|
+
"@wyw-in-js/eslint-config": "workspace:*",
|
|
16
|
+
"@wyw-in-js/ts-config": "workspace:*",
|
|
17
|
+
"typescript": "^5.2.2"
|
|
19
18
|
},
|
|
20
19
|
"engines": {
|
|
21
20
|
"node": ">=16.0.0"
|
|
@@ -31,12 +30,12 @@
|
|
|
31
30
|
"publishConfig": {
|
|
32
31
|
"access": "public"
|
|
33
32
|
},
|
|
34
|
-
"types": "types/index.d.ts",
|
|
35
33
|
"scripts": {
|
|
36
34
|
"build:esm": "babel src --out-dir esm --extensions '.js,.jsx,.ts,.tsx' --source-maps --delete-dir-on-start",
|
|
37
35
|
"build:lib": "cross-env NODE_ENV=legacy babel src --out-dir lib --extensions '.js,.jsx,.ts,.tsx' --source-maps --delete-dir-on-start",
|
|
38
36
|
"build:types": "tsc --project ./tsconfig.lib.json --baseUrl . --rootDir ./src",
|
|
39
37
|
"lint": "eslint --ext .js,.ts .",
|
|
40
|
-
"test": "
|
|
41
|
-
}
|
|
42
|
-
|
|
38
|
+
"test": "bun test src"
|
|
39
|
+
},
|
|
40
|
+
"types": "types/index.d.ts"
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const asyncResolverFactory: <TResolved, const TResolverArgs extends readonly unknown[], TResolve extends (...args: TResolverArgs) => Promise<TResolved>>(onResolve: (resolved: TResolved, what: string, importer: string, stack: string[]) => Promise<string | null>, mapper: (what: string, importer: string, stack: string[]) => TResolverArgs) => (resolveFn: TResolve) => (what: string, importer: string, stack: string[]) => Promise<string | null>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.asyncResolverFactory = void 0;
|
|
4
|
+
const asyncResolverFactory = (onResolve, mapper) => {
|
|
5
|
+
const memoizedSyncResolve = new WeakMap();
|
|
6
|
+
return (resolveFn) => {
|
|
7
|
+
if (!memoizedSyncResolve.has(resolveFn)) {
|
|
8
|
+
const fn = (what, importer, stack) => resolveFn(...mapper(what, importer, stack)).then((resolved) => onResolve(resolved, what, importer, stack));
|
|
9
|
+
memoizedSyncResolve.set(resolveFn, fn);
|
|
10
|
+
}
|
|
11
|
+
return memoizedSyncResolve.get(resolveFn);
|
|
12
|
+
};
|
|
13
|
+
};
|
|
14
|
+
exports.asyncResolverFactory = asyncResolverFactory;
|
package/types/findPackageJSON.js
CHANGED
|
@@ -3,10 +3,25 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.findPackageJSON =
|
|
6
|
+
exports.findPackageJSON = findPackageJSON;
|
|
7
|
+
const fs_1 = require("fs");
|
|
7
8
|
const path_1 = require("path");
|
|
8
9
|
const find_up_1 = __importDefault(require("find-up"));
|
|
9
10
|
const cache = new Map();
|
|
11
|
+
function findSelfPackageJSON(pkgName, filename) {
|
|
12
|
+
const packageJSONPath = find_up_1.default.sync('package.json', {
|
|
13
|
+
cwd: (0, path_1.dirname)(filename),
|
|
14
|
+
});
|
|
15
|
+
if (!packageJSONPath)
|
|
16
|
+
return undefined;
|
|
17
|
+
try {
|
|
18
|
+
const packageJSON = JSON.parse((0, fs_1.readFileSync)(packageJSONPath, 'utf8'));
|
|
19
|
+
return packageJSON?.name === pkgName ? packageJSONPath : undefined;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
10
25
|
function findPackageJSON(pkgName, filename) {
|
|
11
26
|
// Jest's resolver does not work properly with `moduleNameMapper` when `paths` are defined
|
|
12
27
|
const isJest = Boolean(globalThis.process?.env?.JEST_WORKER_ID);
|
|
@@ -25,6 +40,29 @@ function findPackageJSON(pkgName, filename) {
|
|
|
25
40
|
? er.code
|
|
26
41
|
: undefined;
|
|
27
42
|
if (code === 'MODULE_NOT_FOUND') {
|
|
43
|
+
if (filename) {
|
|
44
|
+
// Bun doesn't expose workspace packages via `require.resolve`, but tests
|
|
45
|
+
// and tooling can still reference the current package by name.
|
|
46
|
+
const selfPackageJSON = findSelfPackageJSON(pkgName, filename);
|
|
47
|
+
if (selfPackageJSON) {
|
|
48
|
+
return selfPackageJSON;
|
|
49
|
+
}
|
|
50
|
+
const bun = globalThis.Bun;
|
|
51
|
+
if (bun && typeof bun.resolveSync === 'function') {
|
|
52
|
+
try {
|
|
53
|
+
const resolved = bun.resolveSync(pkgName, filename);
|
|
54
|
+
if (!cache.has(resolved)) {
|
|
55
|
+
cache.set(resolved, find_up_1.default.sync('package.json', {
|
|
56
|
+
cwd: resolved,
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
return cache.get(resolved);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
// fall through to the existing resolution heuristics
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
28
66
|
if (skipPathsOptions && filename) {
|
|
29
67
|
return findPackageJSON(pkgName, null);
|
|
30
68
|
}
|
|
@@ -42,4 +80,3 @@ function findPackageJSON(pkgName, filename) {
|
|
|
42
80
|
throw er;
|
|
43
81
|
}
|
|
44
82
|
}
|
|
45
|
-
exports.findPackageJSON = findPackageJSON;
|
package/types/hasEvalMeta.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.hasEvalMeta =
|
|
3
|
+
exports.hasEvalMeta = hasEvalMeta;
|
|
4
4
|
function hasEvalMeta(value) {
|
|
5
5
|
return typeof value === 'object' && value !== null && '__wyw_meta' in value;
|
|
6
6
|
}
|
|
7
|
-
exports.hasEvalMeta = hasEvalMeta;
|
package/types/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { Debugger } from 'debug';
|
|
2
2
|
export { asyncResolveFallback, syncResolve } from './asyncResolveFallback';
|
|
3
|
+
export { asyncResolverFactory } from './asyncResolverFactory';
|
|
3
4
|
export { hasEvalMeta } from './hasEvalMeta';
|
|
4
5
|
export { findPackageJSON } from './findPackageJSON';
|
|
5
6
|
export { isBoxedPrimitive } from './isBoxedPrimitive';
|
|
@@ -8,5 +9,5 @@ export { isFeatureEnabled } from './options/isFeatureEnabled';
|
|
|
8
9
|
export { slugify } from './slugify';
|
|
9
10
|
export { ValueType } from './types';
|
|
10
11
|
export type { IVariableContext } from './IVariableContext';
|
|
11
|
-
export type { ClassNameSlugVars, ClassNameFn, CodeRemoverOptions, StrictOptions, EvalRule, Evaluator, FeatureFlag, EvaluatorConfig, FeatureFlags, VariableNameFn, } from './options/types';
|
|
12
|
+
export type { ClassNameSlugVars, ClassNameFn, CodeRemoverOptions, ImportLoader, ImportLoaderContext, ImportLoaders, ImportOverride, ImportOverrides, TagResolverMeta, StrictOptions, EvalRule, Evaluator, FeatureFlag, EvaluatorConfig, FeatureFlags, VariableNameFn, } from './options/types';
|
|
12
13
|
export type { Artifact, BuildCodeFrameErrorFn, ConstValue, ExpressionValue, FunctionValue, ICSSRule, LazyValue, Location, Replacement, Replacements, Rules, WYWEvalMeta, } from './types';
|
package/types/index.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ValueType = exports.slugify = exports.isFeatureEnabled = exports.logger = exports.enableDebug = exports.isBoxedPrimitive = exports.findPackageJSON = exports.hasEvalMeta = exports.syncResolve = exports.asyncResolveFallback = void 0;
|
|
3
|
+
exports.ValueType = exports.slugify = exports.isFeatureEnabled = exports.logger = exports.enableDebug = exports.isBoxedPrimitive = exports.findPackageJSON = exports.hasEvalMeta = exports.asyncResolverFactory = exports.syncResolve = exports.asyncResolveFallback = void 0;
|
|
4
4
|
var asyncResolveFallback_1 = require("./asyncResolveFallback");
|
|
5
5
|
Object.defineProperty(exports, "asyncResolveFallback", { enumerable: true, get: function () { return asyncResolveFallback_1.asyncResolveFallback; } });
|
|
6
6
|
Object.defineProperty(exports, "syncResolve", { enumerable: true, get: function () { return asyncResolveFallback_1.syncResolve; } });
|
|
7
|
+
var asyncResolverFactory_1 = require("./asyncResolverFactory");
|
|
8
|
+
Object.defineProperty(exports, "asyncResolverFactory", { enumerable: true, get: function () { return asyncResolverFactory_1.asyncResolverFactory; } });
|
|
7
9
|
var hasEvalMeta_1 = require("./hasEvalMeta");
|
|
8
10
|
Object.defineProperty(exports, "hasEvalMeta", { enumerable: true, get: function () { return hasEvalMeta_1.hasEvalMeta; } });
|
|
9
11
|
var findPackageJSON_1 = require("./findPackageJSON");
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// There is a problem with using boxed numbers and strings in TS,
|
|
3
3
|
// so we cannot just use `instanceof` here
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.isBoxedPrimitive =
|
|
5
|
+
exports.isBoxedPrimitive = isBoxedPrimitive;
|
|
6
6
|
const constructors = ['Number', 'String'];
|
|
7
7
|
function isBoxedPrimitive(o) {
|
|
8
8
|
if (typeof o !== 'object' || o === null)
|
|
@@ -10,4 +10,3 @@ function isBoxedPrimitive(o) {
|
|
|
10
10
|
return (constructors.includes(o.constructor.name) &&
|
|
11
11
|
typeof o?.valueOf() !== 'object');
|
|
12
12
|
}
|
|
13
|
-
exports.isBoxedPrimitive = isBoxedPrimitive;
|
package/types/logger.js
CHANGED
|
@@ -3,7 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.logger = void 0;
|
|
7
|
+
exports.enableDebug = enableDebug;
|
|
7
8
|
const debug_1 = __importDefault(require("debug"));
|
|
8
9
|
const BASE_NAMESPACE = 'wyw-in-js';
|
|
9
10
|
exports.logger = (0, debug_1.default)(BASE_NAMESPACE);
|
|
@@ -30,4 +31,3 @@ debug_1.default.formatters.f = function f(fn) {
|
|
|
30
31
|
function enableDebug(namespace = `${BASE_NAMESPACE}:*`) {
|
|
31
32
|
debug_1.default.enable(namespace);
|
|
32
33
|
}
|
|
33
|
-
exports.enableDebug = enableDebug;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { FeatureFlag } from './types';
|
|
2
2
|
type NoInfer<T> = [T][T extends any ? 0 : never];
|
|
3
|
-
export declare const isFeatureEnabled: <T extends string>(features: { [K in T]?: FeatureFlag
|
|
3
|
+
export declare const isFeatureEnabled: <T extends string>(features: { [K in T]?: FeatureFlag; } | undefined, featureName: NoInfer<T>, filename: string) => boolean;
|
|
4
4
|
export {};
|
package/types/options/types.d.ts
CHANGED
|
@@ -17,7 +17,9 @@ export type VariableNameFn = (context: IVariableContext) => string;
|
|
|
17
17
|
export type EvaluatorConfig = {
|
|
18
18
|
features: StrictOptions['features'];
|
|
19
19
|
highPriorityPlugins: string[];
|
|
20
|
+
importOverrides?: StrictOptions['importOverrides'];
|
|
20
21
|
onlyExports: string[];
|
|
22
|
+
root?: string;
|
|
21
23
|
};
|
|
22
24
|
export type Evaluator = (evalConfig: TransformOptions, ast: File, code: string, config: EvaluatorConfig, babel: Core) => [
|
|
23
25
|
ast: File,
|
|
@@ -31,6 +33,53 @@ export type EvalRule = {
|
|
|
31
33
|
test?: RegExp | ((path: string, code: string) => boolean);
|
|
32
34
|
};
|
|
33
35
|
export type FeatureFlag = boolean | string | string[];
|
|
36
|
+
type ImportOverrideMock = {
|
|
37
|
+
/**
|
|
38
|
+
* Replaces resolved import with provided specifier (resolved on prepare/eval stages).
|
|
39
|
+
* Raw `source` stays intact; only resolution target changes.
|
|
40
|
+
*/
|
|
41
|
+
mock: string;
|
|
42
|
+
noShake?: never;
|
|
43
|
+
unknown?: never;
|
|
44
|
+
};
|
|
45
|
+
type ImportOverrideNoShake = {
|
|
46
|
+
mock?: never;
|
|
47
|
+
/**
|
|
48
|
+
* Disables tree-shaking for this import by forcing `only=['*']`.
|
|
49
|
+
*/
|
|
50
|
+
noShake: true;
|
|
51
|
+
unknown?: never;
|
|
52
|
+
};
|
|
53
|
+
type ImportOverrideUnknown = {
|
|
54
|
+
mock?: never;
|
|
55
|
+
noShake?: never;
|
|
56
|
+
/**
|
|
57
|
+
* Controls behavior when an import reaches eval-time Node resolver fallback.
|
|
58
|
+
* - 'warn' (default): warn once per canonical import key.
|
|
59
|
+
* - 'error': throw.
|
|
60
|
+
* - 'allow': no warning, keep load-as-is.
|
|
61
|
+
*/
|
|
62
|
+
unknown: 'allow' | 'error' | 'warn';
|
|
63
|
+
};
|
|
64
|
+
export type ImportOverride = ImportOverrideMock | ImportOverrideNoShake | ImportOverrideUnknown;
|
|
65
|
+
export type ImportOverrides = Record<string, ImportOverride>;
|
|
66
|
+
export type ImportLoaderContext = {
|
|
67
|
+
emitWarning: (message: string) => void;
|
|
68
|
+
filename: string;
|
|
69
|
+
hash: string;
|
|
70
|
+
importer: string;
|
|
71
|
+
query: string;
|
|
72
|
+
readFile: () => string;
|
|
73
|
+
request: string;
|
|
74
|
+
resolved: string;
|
|
75
|
+
toUrl: () => string;
|
|
76
|
+
};
|
|
77
|
+
export type ImportLoader = 'raw' | 'url' | ((context: ImportLoaderContext) => unknown);
|
|
78
|
+
export type ImportLoaders = Record<string, ImportLoader | false>;
|
|
79
|
+
export type TagResolverMeta = {
|
|
80
|
+
resolvedSource?: string;
|
|
81
|
+
sourceFile: string | null | undefined;
|
|
82
|
+
};
|
|
34
83
|
type AllFeatureFlags = {
|
|
35
84
|
dangerousCodeRemover: FeatureFlag;
|
|
36
85
|
globalCache: FeatureFlag;
|
|
@@ -54,9 +103,11 @@ export type StrictOptions = {
|
|
|
54
103
|
features: FeatureFlags;
|
|
55
104
|
highPriorityPlugins: string[];
|
|
56
105
|
ignore?: RegExp;
|
|
106
|
+
importLoaders?: ImportLoaders;
|
|
107
|
+
importOverrides?: ImportOverrides;
|
|
57
108
|
overrideContext?: (context: Partial<VmContext>, filename: string) => Partial<VmContext>;
|
|
58
109
|
rules: EvalRule[];
|
|
59
|
-
tagResolver?: (source: string, tag: string) => string | null;
|
|
110
|
+
tagResolver?: (source: string, tag: string, meta: TagResolverMeta) => string | null;
|
|
60
111
|
variableNameConfig?: 'var' | 'dashes' | 'raw';
|
|
61
112
|
variableNameSlug?: string | VariableNameFn;
|
|
62
113
|
};
|
package/types/slugify.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* This file contains a utility to generate hashes to be used as generated class names
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.slugify =
|
|
7
|
+
exports.slugify = slugify;
|
|
8
8
|
/**
|
|
9
9
|
* murmurhash2 via https://gist.github.com/raycmorgan/588423
|
|
10
10
|
*/
|
|
@@ -63,4 +63,3 @@ function doHash(str, seed = 0) {
|
|
|
63
63
|
function slugify(code) {
|
|
64
64
|
return doHash(code).toString(36);
|
|
65
65
|
}
|
|
66
|
-
exports.slugify = slugify;
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023 Anton Evzhakov
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|