- Delete old Vite+Svelte frontend - Initialize new SvelteKit project with TypeScript - Configure Tailwind CSS v4 + DaisyUI - Implement JWT authentication with auto-refresh - Create login page with form validation (Zod) - Add protected route guards - Update Docker configuration for single-stage build - Add E2E tests with Playwright (6/11 passing) - Fix Svelte 5 reactivity with $state() runes Known issues: - 5 E2E tests failing (timing/async issues) - Token refresh implementation needs debugging - Validation error display timing
33 lines
1.4 KiB
JavaScript
33 lines
1.4 KiB
JavaScript
import { array } from './array.js';
|
|
import { createSlicesForString } from './_internals/helpers/SlicesForStringBuilder.js';
|
|
import { stringUnit } from './_internals/StringUnitArbitrary.js';
|
|
import { patternsToStringMapper, patternsToStringUnmapperFor } from './_internals/mappers/PatternsToString.js';
|
|
const safeObjectAssign = Object.assign;
|
|
function extractUnitArbitrary(constraints) {
|
|
if (typeof constraints.unit === 'object') {
|
|
return constraints.unit;
|
|
}
|
|
switch (constraints.unit) {
|
|
case 'grapheme':
|
|
return stringUnit('grapheme', 'full');
|
|
case 'grapheme-composite':
|
|
return stringUnit('composite', 'full');
|
|
case 'grapheme-ascii':
|
|
case undefined:
|
|
return stringUnit('grapheme', 'ascii');
|
|
case 'binary':
|
|
return stringUnit('binary', 'full');
|
|
case 'binary-ascii':
|
|
return stringUnit('binary', 'ascii');
|
|
}
|
|
}
|
|
export function string(constraints = {}) {
|
|
const charArbitrary = extractUnitArbitrary(constraints);
|
|
const unmapper = patternsToStringUnmapperFor(charArbitrary, constraints);
|
|
const experimentalCustomSlices = createSlicesForString(charArbitrary, constraints);
|
|
const enrichedConstraints = safeObjectAssign(safeObjectAssign({}, constraints), {
|
|
experimentalCustomSlices,
|
|
});
|
|
return array(charArbitrary, enrichedConstraints).map(patternsToStringMapper, unmapper);
|
|
}
|