// All compiler errors should be listed and accessed from here /** * @internal */ export default { invalid_binding_elements: (element: string, binding: string) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding on <${element}> elements` }), invalid_binding_element_with: (elements: string, binding: string) => ({ code: 'invalid-binding', message: `'${binding}' binding can only be used with ${elements}` }), invalid_binding_on: (binding: string, element: string, post?: string) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding on ${element}` + (post || '') }), invalid_binding_foreign: (binding: string) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding. Foreign elements only support bind:this` }), invalid_binding_no_checkbox: (binding: string, is_radio: boolean) => ({ code: 'invalid-binding', message: `'${binding}' binding can only be used with ` + (is_radio ? ' — for , use \'group\' binding' : '') }), invalid_binding: (binding: string) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding` }), invalid_binding_window: (parts: string[]) => ({ code: 'invalid-binding', message: `Bindings on must be to top-level properties, e.g. '${parts[parts.length - 1]}' rather than '${parts.join('.')}'` }), invalid_binding_let: { code: 'invalid-binding', message: 'Cannot bind to a variable declared with the let: directive' }, invalid_binding_await: { code: 'invalid-binding', message: 'Cannot bind to a variable declared with {#await ... then} or {:catch} blocks' }, invalid_binding_const: { code: 'invalid-binding', message: 'Cannot bind to a variable declared with {@const ...}' }, invalid_binding_writibale: { code: 'invalid-binding', message: 'Cannot bind to a variable which is not writable' }, binding_undeclared: (name: string) => ({ code: 'binding-undeclared', message: `${name} is not declared` }), invalid_type: { code: 'invalid-type', message: '\'type\' attribute cannot be dynamic if input uses two-way binding' }, missing_type: { code: 'missing-type', message: '\'type\' attribute must be specified' }, dynamic_multiple_attribute: { code: 'dynamic-multiple-attribute', message: '\'multiple\' attribute cannot be dynamic if select uses two-way binding' }, missing_contenteditable_attribute: { code: 'missing-contenteditable-attribute', message: '\'contenteditable\' attribute is required for textContent and innerHTML two-way bindings' }, dynamic_contenteditable_attribute: { code: 'dynamic-contenteditable-attribute', message: '\'contenteditable\' attribute cannot be dynamic if element uses two-way binding' }, invalid_event_modifier_combination: (modifier1: string, modifier2: string) => ({ code: 'invalid-event-modifier', message: `The '${modifier1}' and '${modifier2}' modifiers cannot be used together` }), invalid_event_modifier_legacy: (modifier: string) => ({ code: 'invalid-event-modifier', message: `The '${modifier}' modifier cannot be used in legacy mode` }), invalid_event_modifier: (valid: string) => ({ code: 'invalid-event-modifier', message: `Valid event modifiers are ${valid}` }), invalid_event_modifier_component: { code: 'invalid-event-modifier', message: "Event modifiers other than 'once' can only be used on DOM elements" }, textarea_duplicate_value: { code: 'textarea-duplicate-value', message: 'A