// All compiler errors should be listed and accessed from here /** * @internal */ export default { invalid_binding_elements: /** * @param {string} element * @param {string} binding */ (element, binding) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding on <${element}> elements` }), invalid_binding_element_with: /** * @param {string} elements * @param {string} binding */ (elements, binding) => ({ code: 'invalid-binding', message: `'${binding}' binding can only be used with ${elements}` }), invalid_binding_on: /** * @param {string} binding * @param {string} element * @param {string} [post] */ (binding, element, post) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding on ${element}` + (post || '') }), invalid_binding_foreign: /** @param {string} binding */ (binding) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding. Foreign elements only support bind:this` }), invalid_binding_no_checkbox: /** * @param {string} binding * @param {boolean} is_radio */ (binding, is_radio) => ({ code: 'invalid-binding', message: `'${binding}' binding can only be used with ` + (is_radio ? ' — for , use \'group\' binding' : '') }), invalid_binding: /** @param {string} binding */ (binding) => ({ code: 'invalid-binding', message: `'${binding}' is not a valid binding` }), invalid_binding_window: /** @param {string[]} parts */ (parts) => ({ 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_writable: { code: 'invalid-binding', message: 'Cannot bind to a variable which is not writable' }, binding_undeclared: /** @param {string} name */ (name) => ({ 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, innerHTML and innerText 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: /** * @param {string} modifier1 * @param {string} modifier2 */ (modifier1, modifier2) => ({ code: 'invalid-event-modifier', message: `The '${modifier1}' and '${modifier2}' modifiers cannot be used together` }), invalid_event_modifier_legacy: /** @param {string} modifier */ (modifier) => ({ code: 'invalid-event-modifier', message: `The '${modifier}' modifier cannot be used in legacy mode` }), invalid_event_modifier: /** @param {string} valid */ (valid) => ({ 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