- 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
36 lines
1.0 KiB
JavaScript
36 lines
1.0 KiB
JavaScript
import * as Equal from "../../Equal.js";
|
|
import * as Hash from "../../Hash.js";
|
|
import { pipeArguments } from "../../Pipeable.js";
|
|
import { hasProperty } from "../../Predicate.js";
|
|
/** @internal */
|
|
const MetricLabelSymbolKey = "effect/MetricLabel";
|
|
/** @internal */
|
|
export const MetricLabelTypeId = /*#__PURE__*/Symbol.for(MetricLabelSymbolKey);
|
|
/** @internal */
|
|
class MetricLabelImpl {
|
|
key;
|
|
value;
|
|
[MetricLabelTypeId] = MetricLabelTypeId;
|
|
_hash;
|
|
constructor(key, value) {
|
|
this.key = key;
|
|
this.value = value;
|
|
this._hash = Hash.string(MetricLabelSymbolKey + this.key + this.value);
|
|
}
|
|
[Hash.symbol]() {
|
|
return this._hash;
|
|
}
|
|
[Equal.symbol](that) {
|
|
return isMetricLabel(that) && this.key === that.key && this.value === that.value;
|
|
}
|
|
pipe() {
|
|
return pipeArguments(this, arguments);
|
|
}
|
|
}
|
|
/** @internal */
|
|
export const make = (key, value) => {
|
|
return new MetricLabelImpl(key, value);
|
|
};
|
|
/** @internal */
|
|
export const isMetricLabel = u => hasProperty(u, MetricLabelTypeId);
|
|
//# sourceMappingURL=label.js.map
|