haveapi 0.29.9 → 0.30.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.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Rakefile +1 -0
- data/doc/client-examples.md +96 -0
- data/haveapi.gemspec +1 -1
- data/lib/haveapi/client_example.rb +47 -1
- data/lib/haveapi/client_examples/dynamic_helpers.rb +129 -0
- data/lib/haveapi/client_examples/go_client.rb +37 -0
- data/lib/haveapi/client_examples/js_async_client.rb +14 -0
- data/lib/haveapi/client_examples/js_client.rb +179 -135
- data/lib/haveapi/client_examples/python_async_client.rb +14 -0
- data/lib/haveapi/client_examples/python_client.rb +172 -0
- data/lib/haveapi/client_examples/rust_client.rb +59 -0
- data/lib/haveapi/client_examples/ts_async_client.rb +14 -0
- data/lib/haveapi/client_examples/ts_client.rb +14 -0
- data/lib/haveapi/documentation_clients.rb +126 -0
- data/lib/haveapi/documentation_context.rb +47 -0
- data/lib/haveapi/public/js/highlight-LICENSE +29 -0
- data/lib/haveapi/public/js/highlight.pack.js +2 -2
- data/lib/haveapi/public/js/highlighter.js +16 -6
- data/lib/haveapi/public/js/main.js +9 -1
- data/lib/haveapi/public/js/nojs-tabs.js +37 -3
- data/lib/haveapi/server.rb +34 -0
- data/lib/haveapi/version.rb +1 -1
- data/lib/haveapi/views/main_layout.erb +11 -0
- data/lib/haveapi/views/version_page/auth_body.erb +3 -3
- data/lib/haveapi/views/version_page/client_auth.erb +2 -2
- data/lib/haveapi/views/version_page/client_example.erb +2 -11
- data/lib/haveapi/views/version_page/client_init.erb +2 -2
- data/lib/haveapi/views/version_page/client_result.erb +5 -0
- data/lib/haveapi/views/version_page/resource_body.erb +3 -7
- data/lib/haveapi/views/version_page.erb +13 -9
- data/spec/client_examples/assets/highlighter_test.cjs +26 -0
- data/spec/client_examples/assets/tabs_test.cjs +54 -0
- data/spec/client_examples/context_spec.rb +68 -0
- data/spec/client_examples/dynamic_acceptance.md +83 -0
- data/spec/client_examples/dynamic_acceptance.rb +151 -0
- data/spec/client_examples/dynamic_acceptance_spec.rb +76 -0
- data/spec/client_examples/dynamic_fixture.rb +36 -0
- data/spec/client_examples/dynamic_js_spec.rb +195 -0
- data/spec/client_examples/dynamic_metadata_spec.rb +52 -0
- data/spec/client_examples/dynamic_mounted_paths_spec.rb +65 -0
- data/spec/client_examples/dynamic_python_spec.rb +123 -0
- data/spec/client_examples/go_spec.rb +57 -0
- data/spec/client_examples/profiles_spec.rb +95 -0
- data/spec/client_examples/rust_client_spec.rb +75 -0
- data/spec/client_examples/syntax_spec.rb +2 -1
- data/spec/documentation/auth_filtering_spec.rb +12 -0
- data/spec/documentation/client_examples_spec.rb +82 -0
- data/spec/packaging_spec.rb +13 -4
- data/test_support/dynamic_documentation_api.rb +171 -0
- data/test_support/dynamic_protocol_spec.rb +133 -0
- data/test_support/dynamic_python_login_spec.rb +75 -0
- metadata +34 -4
- data/lib/haveapi/client_examples/fs_client.rb +0 -119
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
require 'haveapi/documentation_context'
|
|
3
|
+
|
|
4
|
+
module HaveAPI
|
|
5
|
+
class ClientExample
|
|
6
|
+
class Profile
|
|
7
|
+
attr_reader :language, :package_name, :package_version, :adapter
|
|
8
|
+
|
|
9
|
+
def initialize(language:, package_name:, package_version:, adapter:)
|
|
10
|
+
@language = language
|
|
11
|
+
@package_name = package_name.dup.freeze
|
|
12
|
+
@package_version = package_version.dup.freeze
|
|
13
|
+
@adapter = adapter.freeze
|
|
14
|
+
freeze
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
class Profiles
|
|
19
|
+
class Invalid < ArgumentError; end
|
|
20
|
+
|
|
21
|
+
KEYS = {
|
|
22
|
+
go: %i[import_path module_version description_path generator_version],
|
|
23
|
+
rust: %i[snapshot_path generator_config_path generator_version]
|
|
24
|
+
}.freeze
|
|
25
|
+
|
|
26
|
+
def initialize
|
|
27
|
+
@versions = {}
|
|
28
|
+
@rust_versions = {}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def register(version, **languages)
|
|
32
|
+
raise Invalid, 'Documentation client profiles are already mounted' if @mounted
|
|
33
|
+
raise Invalid, 'Unknown documentation client language' unless (languages.keys - KEYS.keys).empty?
|
|
34
|
+
|
|
35
|
+
selected = @versions[version.to_s] ||= {}
|
|
36
|
+
languages.each do |language, config|
|
|
37
|
+
next if config.nil?
|
|
38
|
+
raise Invalid, 'Duplicate documentation client profile' if selected.has_key?(language)
|
|
39
|
+
|
|
40
|
+
selected[language] = load_profile(language, config, version.to_s)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def mount(versions)
|
|
45
|
+
unknown = @versions.keys - Array(versions).map(&:to_s)
|
|
46
|
+
raise Invalid, 'Documentation client profile selects an unavailable API version' unless unknown.empty?
|
|
47
|
+
unless @rust_versions.all? { |version, saved| version == saved }
|
|
48
|
+
raise Invalid, 'Documentation Rust snapshot API version mismatch'
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
@versions.each_value(&:freeze)
|
|
52
|
+
@versions.freeze
|
|
53
|
+
@mounted = true
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def for_version(version)
|
|
57
|
+
@versions.fetch(version.to_s, {}).dup.freeze
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
private
|
|
61
|
+
|
|
62
|
+
def validate_config(language, config)
|
|
63
|
+
unless config.is_a?(Hash) && config.keys.sort == KEYS.fetch(language).sort &&
|
|
64
|
+
config.values.all? { |value| value.is_a?(String) && !value.strip.empty? }
|
|
65
|
+
raise Invalid, 'Invalid documentation client profile fields'
|
|
66
|
+
end
|
|
67
|
+
return if config.fetch(:generator_version).match?(/\A\d+\.\d+\.\d+(?:[-+][\w.-]+)?\z/)
|
|
68
|
+
|
|
69
|
+
raise Invalid, 'Invalid documentation generator version'
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
def local_file(path)
|
|
73
|
+
raise Invalid, 'Documentation profiles require absolute local files' unless path.start_with?('/') && File.file?(path)
|
|
74
|
+
|
|
75
|
+
path
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def load_profile(language, config, version)
|
|
79
|
+
validate_config(language, config)
|
|
80
|
+
language == :go ? load_go(config) : load_rust(config, version)
|
|
81
|
+
rescue LoadError
|
|
82
|
+
raise Invalid, 'Configured documentation client generator is not installed'
|
|
83
|
+
rescue JSON::ParserError, SystemCallError
|
|
84
|
+
raise Invalid, 'Cannot read configured documentation client data'
|
|
85
|
+
rescue Invalid
|
|
86
|
+
raise
|
|
87
|
+
rescue StandardError
|
|
88
|
+
raise Invalid, 'Configured documentation client schema or configuration is invalid'
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def load_go(config)
|
|
92
|
+
name = config.fetch(:import_path)
|
|
93
|
+
version = config.fetch(:module_version)
|
|
94
|
+
unless name.match?(%r{\A[a-zA-Z0-9][a-zA-Z0-9._~/-]*\z}) &&
|
|
95
|
+
name.split('/').none? { |part| part.empty? || %w[. ..].include?(part) } &&
|
|
96
|
+
version.match?(/\Av\d+\.\d+\.\d+(?:[-+][\w.-]+)?\z/)
|
|
97
|
+
raise Invalid, 'Invalid Go documentation client package'
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
require 'haveapi/go_client/documentation'
|
|
101
|
+
unless config.fetch(:generator_version) == HaveAPI::GoClient::VERSION
|
|
102
|
+
raise Invalid, 'Documentation Go generator version mismatch'
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
description = JSON.parse(File.read(local_file(config.fetch(:description_path))))
|
|
106
|
+
adapter = HaveAPI::GoClient::Documentation.new(description:, import_path: name, module_version: version)
|
|
107
|
+
Profile.new(language: :go, package_name: name, package_version: version, adapter:)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def load_rust(config, api_version)
|
|
111
|
+
require 'haveapi/rust_client/documentation'
|
|
112
|
+
unless config.fetch(:generator_version) == HaveAPI::RustClient::VERSION
|
|
113
|
+
raise Invalid, 'Documentation Rust generator version mismatch'
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
snapshot = JSON.parse(File.read(local_file(config.fetch(:snapshot_path))))
|
|
117
|
+
@rust_versions[api_version] = snapshot.fetch('api_version').to_s
|
|
118
|
+
generator_config = Tomlrb.load_file(local_file(config.fetch(:generator_config_path)))
|
|
119
|
+
name = generator_config.fetch('crate_name')
|
|
120
|
+
version = generator_config.fetch('crate_version')
|
|
121
|
+
adapter = HaveAPI::RustClient::Documentation.new(snapshot:, config: generator_config)
|
|
122
|
+
Profile.new(language: :rust, package_name: name, package_version: version, adapter:)
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
require 'haveapi/client_example'
|
|
2
|
+
|
|
3
|
+
module HaveAPI
|
|
4
|
+
class ClientExample
|
|
5
|
+
# A request-local snapshot: never freeze or retain the server's shared help.
|
|
6
|
+
class Context
|
|
7
|
+
FIELDS = %i[version host base_url version_url description resource_path resource action_name action sample profile].freeze
|
|
8
|
+
attr_reader(*FIELDS)
|
|
9
|
+
|
|
10
|
+
def initialize(version:, host:, base_url:, version_url:, description:,
|
|
11
|
+
resource_path: [], resource: nil, action_name: nil, action: nil,
|
|
12
|
+
sample: nil, profile: nil)
|
|
13
|
+
@version = version.to_s.dup.freeze
|
|
14
|
+
@host = host.to_s.dup.freeze
|
|
15
|
+
@base_url = base_url.to_s.dup.freeze
|
|
16
|
+
@version_url = version_url.to_s.dup.freeze
|
|
17
|
+
@description = copy(description)
|
|
18
|
+
@resource_path = copy(resource_path.map(&:to_s))
|
|
19
|
+
@resource = copy(resource)
|
|
20
|
+
@action_name = action_name.nil? ? nil : action_name.to_s.dup.freeze
|
|
21
|
+
@action = copy(action)
|
|
22
|
+
@sample = copy(sample)
|
|
23
|
+
@profile = profile
|
|
24
|
+
freeze
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def with(**changes)
|
|
28
|
+
self.class.new(**FIELDS.to_h { |field| [field, public_send(field)] }, **changes)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
def copy(value)
|
|
34
|
+
case value
|
|
35
|
+
when Hash
|
|
36
|
+
value.to_h { |key, item| [copy(key), copy(item)] }.freeze
|
|
37
|
+
when Array
|
|
38
|
+
value.map { |item| copy(item) }.freeze
|
|
39
|
+
when String
|
|
40
|
+
value.dup.freeze
|
|
41
|
+
else
|
|
42
|
+
value
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2006, Ivan Sagalaev.
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without
|
|
7
|
+
modification, are permitted provided that the following conditions are met:
|
|
8
|
+
|
|
9
|
+
* Redistributions of source code must retain the above copyright notice, this
|
|
10
|
+
list of conditions and the following disclaimer.
|
|
11
|
+
|
|
12
|
+
* Redistributions in binary form must reproduce the above copyright notice,
|
|
13
|
+
this list of conditions and the following disclaimer in the documentation
|
|
14
|
+
and/or other materials provided with the distribution.
|
|
15
|
+
|
|
16
|
+
* Neither the name of the copyright holder nor the names of its
|
|
17
|
+
contributors may be used to endorse or promote products derived from
|
|
18
|
+
this software without specific prior written permission.
|
|
19
|
+
|
|
20
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
21
|
+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
22
|
+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
|
24
|
+
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
|
25
|
+
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
26
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
|
27
|
+
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
|
28
|
+
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
29
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
/*! highlight.js
|
|
2
|
-
!function(e){var n="object"==typeof window&&window||"object"==typeof self&&self;"undefined"!=typeof exports?e(exports):n&&(n.hljs=e({}),"function"==typeof define&&define.amd&&define([],function(){return n.hljs}))}(function(e){function n(e){return e.replace(/[&<>]/gm,function(e){return I[e]})}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0===t.index}function a(e){return k.test(e)}function i(e){var n,t,r,i,o=e.className+" ";if(o+=e.parentNode?e.parentNode.className:"",t=B.exec(o))return R(t[1])?t[1]:"no-highlight";for(o=o.split(/\s+/),n=0,r=o.length;r>n;n++)if(i=o[n],a(i)||R(i))return i}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3===i.nodeType?a+=i.nodeValue.length:1===i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!==r[0].offset?e[0].offset<r[0].offset?e:r:"start"===r[0].event?e:r:e.length?e:r}function o(e){function r(e){return" "+e.nodeName+'="'+n(e.value)+'"'}l+="<"+t(e)+w.map.call(e.attributes,r).join("")+">"}function u(e){l+="</"+t(e)+">"}function c(e){("start"===e.event?o:u)(e.node)}for(var s=0,l="",f=[];e.length||r.length;){var g=i();if(l+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g===e){f.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g===e&&g.length&&g[0].offset===s);f.reverse().forEach(o)}else"start"===g[0].event?f.push(g[0].node):f.pop(),c(g.splice(0,1)[0])}return l+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):E(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\w+/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),null==a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"===e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var l=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=l.length?t(l.join("|"),!0):{exec:function(){return null}}}}r(e)}function l(e,t,a,i){function o(e,n){var t,a;for(t=0,a=n.c.length;a>t;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?"":y.classPrefix,i='<span class="'+a,o=t?"":C;return i+=e+'">',i+n+o}function p(){var e,t,r,a;if(!E.k)return n(B);for(a="",t=0,E.lR.lastIndex=0,r=E.lR.exec(B);r;)a+=n(B.substr(t,r.index-t)),e=g(E,r),e?(M+=e[1],a+=h(e[0],n(r[0]))):a+=n(r[0]),t=E.lR.lastIndex,r=E.lR.exec(B);return a+n(B.substr(t))}function d(){var e="string"==typeof E.sL;if(e&&!x[E.sL])return n(B);var t=e?l(E.sL,B,!0,L[E.sL]):f(B,E.sL.length?E.sL:void 0);return E.r>0&&(M+=t.r),e&&(L[E.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){k+=null!=E.sL?d():p(),B=""}function v(e){k+=e.cN?h(e.cN,"",!0):"",E=Object.create(e,{parent:{value:E}})}function m(e,n){if(B+=e,null==n)return b(),0;var t=o(n,E);if(t)return t.skip?B+=n:(t.eB&&(B+=n),b(),t.rB||t.eB||(B=n)),v(t,n),t.rB?0:n.length;var r=u(E,n);if(r){var a=E;a.skip?B+=n:(a.rE||a.eE||(B+=n),b(),a.eE&&(B=n));do E.cN&&(k+=C),E.skip||(M+=E.r),E=E.parent;while(E!==r.parent);return r.starts&&v(r.starts,""),a.rE?0:n.length}if(c(n,E))throw new Error('Illegal lexeme "'+n+'" for mode "'+(E.cN||"<unnamed>")+'"');return B+=n,n.length||1}var N=R(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var w,E=i||N,L={},k="";for(w=E;w!==N;w=w.parent)w.cN&&(k=h(w.cN,"",!0)+k);var B="",M=0;try{for(var I,j,O=0;;){if(E.t.lastIndex=O,I=E.t.exec(t),!I)break;j=m(t.substr(O,I.index-O),I[0]),O=I.index+j}for(m(t.substr(O)),w=E;w.parent;w=w.parent)w.cN&&(k+=C);return{r:M,value:k,language:e,top:E}}catch(T){if(T.message&&-1!==T.message.indexOf("Illegal"))return{r:0,value:n(t)};throw T}}function f(e,t){t=t||y.languages||E(x);var r={r:0,value:n(e)},a=r;return t.filter(R).forEach(function(n){var t=l(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}),a.language&&(r.second_best=a),r}function g(e){return y.tabReplace||y.useBR?e.replace(M,function(e,n){return y.useBR&&"\n"===e?"<br>":y.tabReplace?n.replace(/\t/g,y.tabReplace):void 0}):e}function h(e,n,t){var r=n?L[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n,t,r,o,s,p=i(e);a(p)||(y.useBR?(n=document.createElementNS("http://www.w3.org/1999/xhtml","div"),n.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ \/]*>/g,"\n")):n=e,s=n.textContent,r=p?l(p,s,!0):f(s),t=u(n),t.length&&(o=document.createElementNS("http://www.w3.org/1999/xhtml","div"),o.innerHTML=r.value,r.value=c(t,u(o),s)),r.value=g(r.value),e.innerHTML=r.value,e.className=h(e.className,p,r.language),e.result={language:r.language,re:r.r},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.r}))}function d(e){y=o(y,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");w.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){L[e]=n})}function N(){return E(x)}function R(e){return e=(e||"").toLowerCase(),x[e]||x[L[e]]}var w=[],E=Object.keys,x={},L={},k=/^(no-?highlight|plain|text)$/i,B=/\blang(?:uage)?-([\w-]+)\b/i,M=/((^(<[^>]+>|\t|)+|(?:\n)))/gm,C="</span>",y={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},I={"&":"&","<":"<",">":">"};return e.highlight=l,e.highlightAuto=f,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=R,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e.METHOD_GUARD={b:"\\.\\s*"+e.UIR,r:0},e});hljs.registerLanguage("bash",function(e){var t={cN:"variable",v:[{b:/\$[\w\d#@][\w\d_]*/},{b:/\$\{(.*?)}/}]},s={cN:"string",b:/"/,e:/"/,c:[e.BE,t,{cN:"variable",b:/\$\(/,e:/\)/,c:[e.BE]}]},a={cN:"string",b:/'/,e:/'/};return{aliases:["sh","zsh"],l:/-?[a-z\._]+/,k:{keyword:"if then else elif fi for while in do done case esac function",literal:"true false",built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp",_:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"meta",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:!0,c:[e.inherit(e.TM,{b:/\w[\w\d_]*/})],r:0},e.HCM,s,a,t]}});hljs.registerLanguage("http",function(e){var t="HTTP/[0-9\\.]+";return{aliases:["https"],i:"\\S",c:[{b:"^"+t,e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{b:"^[A-Z]+ (.*?) "+t+"$",rB:!0,e:"$",c:[{cN:"string",b:" ",e:" ",eB:!0,eE:!0},{b:t},{cN:"keyword",b:"[A-Z]+"}]},{cN:"attribute",b:"^\\w",e:": ",eE:!0,i:"\\n|\\s|=",starts:{e:"$",r:0}},{b:"\\n\\n",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage("xml",function(s){var e="[A-Za-z0-9\\._:-]+",t={eW:!0,i:/</,r:0,c:[{cN:"attr",b:e,r:0},{b:/=\s*/,r:0,c:[{cN:"string",endsParent:!0,v:[{b:/"/,e:/"/},{b:/'/,e:/'/},{b:/[^\s"'=<>`]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist"],cI:!0,c:[{cN:"meta",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},s.C("<!--","-->",{r:10}),{b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{b:/<\?(php)?/,e:/\?>/,sL:"php",c:[{b:"/\\*",e:"\\*/",skip:!0}]},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{name:"style"},c:[t],starts:{e:"</style>",rE:!0,sL:["css","xml"]}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{name:"script"},c:[t],starts:{e:"</script>",rE:!0,sL:["actionscript","javascript","handlebars","xml"]}},{cN:"meta",v:[{b:/<\?xml/,e:/\?>/,r:10},{b:/<\?\w+/,e:/\?>/}]},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"name",b:/[^\/><\s]+/,r:0},t]}]}});hljs.registerLanguage("php",function(e){var c={b:"\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"},i={cN:"meta",b:/<\?(php)?|\?>/},t={cN:"string",c:[e.BE,i],v:[{b:'b"',e:'"'},{b:"b'",e:"'"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:["php3","php4","php5","php6"],cI:!0,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",c:[e.HCM,e.C("//","$",{c:[i]}),e.C("/\\*","\\*/",{c:[{cN:"doctag",b:"@[A-Za-z]+"}]}),e.C("__halt_compiler.+?;",!1,{eW:!0,k:"__halt_compiler",l:e.UIR}),{cN:"string",b:/<<<['"]?\w+['"]?$/,e:/^\w+;?$/,c:[e.BE,{cN:"subst",v:[{b:/\$\w+/},{b:/\{\$/,e:/\}/}]}]},i,{cN:"keyword",b:/\$this\b/},c,{b:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{cN:"function",bK:"function",e:/[;{]/,eE:!0,i:"\\$|\\[|%",c:[e.UTM,{cN:"params",b:"\\(",e:"\\)",c:["self",c,e.CBCM,t,a]}]},{cN:"class",bK:"class interface",e:"{",eE:!0,i:/[:\(\$"]/,c:[{bK:"extends implements"},e.UTM]},{bK:"namespace",e:";",i:/[\.']/,c:[e.UTM]},{bK:"use",e:";",c:[e.UTM]},{b:"=>"},t,a]}});hljs.registerLanguage("json",function(e){var i={literal:"true false null"},n=[e.QSM,e.CNM],r={e:",",eW:!0,eE:!0,c:n,k:i},t={b:"{",e:"}",c:[{cN:"attr",b:/"/,e:/"/,c:[e.BE],i:"\\n"},e.inherit(r,{b:/:/})],i:"\\S"},c={b:"\\[",e:"\\]",c:[e.inherit(r)],i:"\\S"};return n.splice(n.length,0,t,c),{c:n,k:i,i:"\\S"}});hljs.registerLanguage("javascript",function(e){var r="[A-Za-z$_][0-9A-Za-z$_]*",t={keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},a={cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},n={cN:"subst",b:"\\$\\{",e:"\\}",k:t,c:[]},c={cN:"string",b:"`",e:"`",c:[e.BE,n]};n.c=[e.ASM,e.QSM,c,a,e.RM];var s=n.c.concat([e.CBCM,e.CLCM]);return{aliases:["js","jsx"],k:t,c:[{cN:"meta",r:10,b:/^\s*['"]use (strict|asm)['"]/},{cN:"meta",b:/^#!/,e:/$/},e.ASM,e.QSM,c,e.CLCM,e.CBCM,a,{b:/[{,]\s*/,r:0,c:[{b:r+"\\s*:",rB:!0,r:0,c:[{cN:"attr",b:r,r:0}]}]},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{cN:"function",b:"(\\(.*?\\)|"+r+")\\s*=>",rB:!0,e:"\\s*=>",c:[{cN:"params",v:[{b:r},{b:/\(\s*\)/},{b:/\(/,e:/\)/,eB:!0,eE:!0,k:t,c:s}]}]},{b:/</,e:/(\/\w+|\w+\/)>/,sL:"xml",c:[{b:/<\w+\s*\/>/,skip:!0},{b:/<\w+/,e:/(\/\w+|\w+\/)>/,skip:!0,c:[{b:/<\w+\s*\/>/,skip:!0},"self"]}]}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:r}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:s}],i:/\[|%/},{b:/\$[(.]/},e.METHOD_GUARD,{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]},{bK:"constructor",e:/\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage("ruby",function(e){var b="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?",r={keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor",literal:"true false nil"},c={cN:"doctag",b:"@[A-Za-z]+"},a={b:"#<",e:">"},s=[e.C("#","$",{c:[c]}),e.C("^\\=begin","^\\=end",{c:[c],r:10}),e.C("^__END__","\\n$")],n={cN:"subst",b:"#\\{",e:"}",k:r},t={cN:"string",c:[e.BE,n],v:[{b:/'/,e:/'/},{b:/"/,e:/"/},{b:/`/,e:/`/},{b:"%[qQwWx]?\\(",e:"\\)"},{b:"%[qQwWx]?\\[",e:"\\]"},{b:"%[qQwWx]?{",e:"}"},{b:"%[qQwWx]?<",e:">"},{b:"%[qQwWx]?/",e:"/"},{b:"%[qQwWx]?%",e:"%"},{b:"%[qQwWx]?-",e:"-"},{b:"%[qQwWx]?\\|",e:"\\|"},{b:/\B\?(\\\d{1,3}|\\x[A-Fa-f0-9]{1,2}|\\u[A-Fa-f0-9]{4}|\\?\S)\b/},{b:/<<(-?)\w+$/,e:/^\s*\w+$/}]},i={cN:"params",b:"\\(",e:"\\)",endsParent:!0,k:r},d=[t,a,{cN:"class",bK:"class module",e:"$|;",i:/=/,c:[e.inherit(e.TM,{b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?"}),{b:"<\\s*",c:[{b:"("+e.IR+"::)?"+e.IR}]}].concat(s)},{cN:"function",bK:"def",e:"$|;",c:[e.inherit(e.TM,{b:b}),i].concat(s)},{b:e.IR+"::"},{cN:"symbol",b:e.UIR+"(\\!|\\?)?:",r:0},{cN:"symbol",b:":(?!\\s)",c:[t,{b:b}],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{cN:"params",b:/\|/,e:/\|/,k:r},{b:"("+e.RSR+")\\s*",c:[a,{cN:"regexp",c:[e.BE,n],i:/\n/,v:[{b:"/",e:"/[a-z]*"},{b:"%r{",e:"}[a-z]*"},{b:"%r\\(",e:"\\)[a-z]*"},{b:"%r!",e:"![a-z]*"},{b:"%r\\[",e:"\\][a-z]*"}]}].concat(s),r:0}].concat(s);n.c=d,i.c=d;var l="[>?]>",o="[\\w#]+\\(\\w+\\):\\d+:\\d+>",w="(\\w+-)?\\d+\\.\\d+\\.\\d(p\\d+)?[^>]+>",u=[{b:/^\s*=>/,starts:{e:"$",c:d}},{cN:"meta",b:"^("+l+"|"+o+"|"+w+")",starts:{e:"$",c:d}}];return{aliases:["rb","gemspec","podspec","thor","irb"],k:r,i:/\/\*/,c:s.concat(u).concat(d)}});
|
|
1
|
+
/*! highlight.js 11.12.0 | BSD-3-Clause | See highlight-LICENSE */
|
|
2
|
+
var hljs=(()=>{var z=(e,n)=>()=>{try{return n||e((n={exports:{}}).exports,n),n.exports}catch(t){throw n=0,t}};var Qe=z((Yt,qe)=>{function Pe(e){return e instanceof Map?e.clear=e.delete=e.set=function(){throw new Error("map is read-only")}:e instanceof Set&&(e.add=e.clear=e.delete=function(){throw new Error("set is read-only")}),Object.freeze(e),Object.getOwnPropertyNames(e).forEach(n=>{let t=e[n],s=typeof t;(s==="object"||s==="function")&&!Object.isFrozen(t)&&Pe(t)}),e}var ge=class{constructor(n){n.data===void 0&&(n.data={}),this.data=n.data,this.isMatchIgnored=!1}ignoreMatch(){this.isMatchIgnored=!0}};function Ue(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function ee(e,...n){let t=Object.create(null);for(let s in e)t[s]=e[s];return n.forEach(function(s){for(let u in s)t[u]=s[u]}),t}var $n="</span>",Ce=e=>!!e.scope,Fn=(e,{prefix:n})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){let t=e.split(".");return["".concat(n).concat(t.shift()),...t.map((s,u)=>"".concat(s).concat("_".repeat(u+1)))].join(" ")}return"".concat(n).concat(e)},Ne=class{constructor(n,t){this.buffer="",this.classPrefix=t.classPrefix,n.walk(this)}addText(n){this.buffer+=Ue(n)}openNode(n){if(!Ce(n))return;let t=Fn(n.scope,{prefix:this.classPrefix});this.span(t)}closeNode(n){Ce(n)&&(this.buffer+=$n)}value(){return this.buffer}span(n){this.buffer+='<span class="'.concat(n,'">')}},ve=(e={})=>{let n={children:[]};return Object.assign(n,e),n},Ae=class e{constructor(){this.rootNode=ve(),this.stack=[this.rootNode]}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(n){this.top.children.push(n)}openNode(n){let t=ve({scope:n});this.add(t),this.stack.push(t)}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}walk(n){return this.constructor._walk(n,this.rootNode)}static _walk(n,t){return typeof t=="string"?n.addText(t):t.children&&(n.openNode(t),t.children.forEach(s=>this._walk(n,s)),n.closeNode(t)),n}static _collapse(n){typeof n!="string"&&n.children&&(n.children.every(t=>typeof t=="string")?n.children=[n.children.join("")]:n.children.forEach(t=>{e._collapse(t)}))}},Te=class extends Ae{constructor(n){super(),this.options=n}addText(n){n!==""&&this.add(n)}startScope(n){this.openNode(n)}endScope(){this.closeNode()}__addSublanguage(n,t){let s=n.root;t&&(s.scope="language:".concat(t)),this.add(s)}toHTML(){return new Ne(this,this.options).value()}finalize(){return this.closeAllNodes(),!0}};function re(e){return e?typeof e=="string"?e:e.source:null}function $e(e){return se("(?=",e,")")}function Hn(e){return se("(?:",e,")*")}function zn(e){return se("(?:",e,")?")}function se(...e){return e.map(t=>re(t)).join("")}function Gn(e){let n=e[e.length-1];return typeof n=="object"&&n.constructor===Object?(e.splice(e.length-1,1),n):{}}function Ee(...e){return"("+(Gn(e).capture?"":"?:")+e.map(s=>re(s)).join("|")+")"}function Fe(e){return new RegExp(e.toString()+"|").exec("").length-1}function Kn(e,n){let t=e&&e.exec(n);return t&&t.index===0}var Zn=new RegExp(Ee(/\[(?:[^\\\]]|\\.)*\]/,/\(\?<(?![=!])[^>]+>/,/\(\?'[^']+'/,/\(\??/,/\\([1-9][0-9]*)/,/\\./));function Re(e,{joinWith:n}){let t=0;return e.map(s=>{t+=1;let u=t,b=re(s),r="";for(;b.length>0;){let a=Zn.exec(b);if(!a){r+=b;break}r+=b.substring(0,a.index),b=b.substring(a.index+a[0].length),a[0][0]==="\\"&&a[1]?r+="\\"+String(Number(a[1])+u):(r+=a[0],(a[0]==="("||/^\(\?[<']/.test(a[0]))&&t++)}return r}).map(s=>"(".concat(s,")")).join(n)}var Wn=/\b\B/,He="[a-zA-Z]\\w*",Oe="[a-zA-Z_]\\w*",ze="\\b\\d+(\\.\\d+)?",Ge="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",Ke="\\b(0b[01]+)",Xn="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",Yn=(e={})=>{let n=/^#![ ]*\//;return e.binary&&(e.begin=se(n,/.*\b/,e.binary,/\b.*/)),ee({scope:"meta",begin:n,end:/$/,relevance:0,"on:begin":(t,s)=>{t.index!==0&&s.ignoreMatch()}},e)},ce={begin:"\\\\[\\s\\S]",relevance:0},qn={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[ce]},Qn={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[ce]},Jn={begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},be=function(e,n,t={}){let s=ee({scope:"comment",begin:e,end:n,contains:[]},t);s.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0});let u=Ee("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return s.contains.push({begin:se(/[ ]+/,"(",u,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s},Vn=be("//","$"),jn=be("/\\*","\\*/"),et=be("#","$"),nt={scope:"number",begin:ze,relevance:0},tt={scope:"number",begin:Ge,relevance:0},st={scope:"number",begin:Ke,relevance:0},at={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[ce,{begin:/\[/,end:/\]/,relevance:0,contains:[ce]}]},it={scope:"title",begin:He,relevance:0},rt={scope:"title",begin:Oe,relevance:0},ct={begin:"\\.\\s*"+Oe,relevance:0},ot=function(e){return Object.assign(e,{"on:begin":(n,t)=>{t.data._beginMatch=n[1]},"on:end":(n,t)=>{t.data._beginMatch!==n[1]&&t.ignoreMatch()}})},ue=Object.freeze({__proto__:null,APOS_STRING_MODE:qn,BACKSLASH_ESCAPE:ce,BINARY_NUMBER_MODE:st,BINARY_NUMBER_RE:Ke,COMMENT:be,C_BLOCK_COMMENT_MODE:jn,C_LINE_COMMENT_MODE:Vn,C_NUMBER_MODE:tt,C_NUMBER_RE:Ge,END_SAME_AS_BEGIN:ot,HASH_COMMENT_MODE:et,IDENT_RE:He,MATCH_NOTHING_RE:Wn,METHOD_GUARD:ct,NUMBER_MODE:nt,NUMBER_RE:ze,PHRASAL_WORDS_MODE:Jn,QUOTE_STRING_MODE:Qn,REGEXP_MODE:at,RE_STARTERS_RE:Xn,SHEBANG:Yn,TITLE_MODE:it,UNDERSCORE_IDENT_RE:Oe,UNDERSCORE_TITLE_MODE:rt});function lt(e,n){e.input[e.index-1]==="."&&n.ignoreMatch()}function ut(e,n){e.className!==void 0&&(e.scope=e.className,delete e.className)}function gt(e,n){n&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=lt,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,e.relevance===void 0&&(e.relevance=0))}function dt(e,n){Array.isArray(e.illegal)&&(e.illegal=Ee(...e.illegal))}function Et(e,n){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match}}function bt(e,n){e.relevance===void 0&&(e.relevance=1)}var _t=(e,n)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");let t=Object.assign({},e);Object.keys(e).forEach(s=>{delete e[s]}),e.keywords=t.keywords,e.begin=se(t.beforeMatch,$e(t.begin)),e.starts={relevance:0,contains:[Object.assign(t,{endsParent:!0})]},e.relevance=0,delete t.beforeMatch},ft=["of","and","for","in","not","or","if","then","parent","list","value"],pt="keyword";function Ze(e,n,t=pt){let s=Object.create(null);return typeof e=="string"?u(t,e.split(" ")):Array.isArray(e)?u(t,e):Object.keys(e).forEach(function(b){Object.assign(s,Ze(e[b],n,b))}),s;function u(b,r){n&&(r=r.map(a=>a.toLowerCase())),r.forEach(function(a){let c=a.split("|");s[c[0]]=[b,ht(c[0],c[1])]})}}function ht(e,n){return n?Number(n):St(e)?0:1}function St(e){return ft.includes(e.toLowerCase())}var Le={},te=e=>{console.error(e)},De=(e,...n)=>{console.log("WARN: ".concat(e),...n)},ae=(e,n)=>{Le["".concat(e,"/").concat(n)]||(console.log("Deprecated as of ".concat(e,". ").concat(n)),Le["".concat(e,"/").concat(n)]=!0)},de=new Error;function We(e,n,{key:t}){let s=0,u=e[t],b={},r={};for(let a=1;a<=n.length;a++)r[a+s]=u[a],b[a+s]=!0,s+=Fe(n[a-1]);e[t]=r,e[t]._emit=b,e[t]._multi=!0}function Nt(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw te("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),de;if(typeof e.beginScope!="object"||e.beginScope===null)throw te("beginScope must be object"),de;We(e,e.begin,{key:"beginScope"}),e.begin=Re(e.begin,{joinWith:""})}}function At(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw te("skip, excludeEnd, returnEnd not compatible with endScope: {}"),de;if(typeof e.endScope!="object"||e.endScope===null)throw te("endScope must be object"),de;We(e,e.end,{key:"endScope"}),e.end=Re(e.end,{joinWith:""})}}function Tt(e){e.scope&&typeof e.scope=="object"&&e.scope!==null&&(e.beginScope=e.scope,delete e.scope)}function mt(e){Tt(e),typeof e.beginScope=="string"&&(e.beginScope={_wrap:e.beginScope}),typeof e.endScope=="string"&&(e.endScope={_wrap:e.endScope}),Nt(e),At(e)}function Rt(e){function n(r,a){return new RegExp(re(r),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(a?"g":""))}class t{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}addRule(a,c){c.position=this.position++,this.matchIndexes[this.matchAt]=c,this.regexes.push([c,a]),this.matchAt+=Fe(a)+1}compile(){this.regexes.length===0&&(this.exec=()=>null);let a=this.regexes.map(c=>c[1]);this.matcherRe=n(Re(a,{joinWith:"|"}),!0),this.lastIndex=0}exec(a){this.matcherRe.lastIndex=this.lastIndex;let c=this.matcherRe.exec(a);if(!c)return null;let E=c.findIndex((m,S)=>S>0&&m!==void 0),_=this.matchIndexes[E];return c.splice(0,E),Object.assign(c,_)}}class s{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(a){if(this.multiRegexes[a])return this.multiRegexes[a];let c=new t;return this.rules.slice(a).forEach(([E,_])=>c.addRule(E,_)),c.compile(),this.multiRegexes[a]=c,c}resumingScanAtSamePosition(){return this.regexIndex!==0}considerAll(){this.regexIndex=0}addRule(a,c){this.rules.push([a,c]),c.type==="begin"&&this.count++}exec(a){let c=this.getMatcher(this.regexIndex);c.lastIndex=this.lastIndex;let E=c.exec(a);if(this.resumingScanAtSamePosition()&&!(E&&E.index===this.lastIndex)){let _=this.getMatcher(0);_.lastIndex=this.lastIndex+1,E=_.exec(a)}return E&&(this.regexIndex+=E.position+1,this.regexIndex===this.count&&this.considerAll()),E}}function u(r){let a=new s;return r.contains.forEach(c=>a.addRule(c.begin,{rule:c,type:"begin"})),r.terminatorEnd&&a.addRule(r.terminatorEnd,{type:"end"}),r.illegal&&a.addRule(r.illegal,{type:"illegal"}),a}function b(r,a){let c=r;if(r.isCompiled)return c;[ut,Et,mt,_t].forEach(_=>_(r,a)),e.compilerExtensions.forEach(_=>_(r,a)),r.__beforeBegin=null,[gt,dt,bt].forEach(_=>_(r,a)),r.isCompiled=!0;let E=null;return typeof r.keywords=="object"&&r.keywords.$pattern&&(r.keywords=Object.assign({},r.keywords),E=r.keywords.$pattern,delete r.keywords.$pattern),E=E||/\w+/,r.keywords&&(r.keywords=Ze(r.keywords,e.case_insensitive)),c.keywordPatternRe=n(E,!0),a&&(r.begin||(r.begin=/\B|\b/),c.beginRe=n(c.begin),!r.end&&!r.endsWithParent&&(r.end=/\B|\b/),r.end&&(c.endRe=n(c.end)),c.terminatorEnd=re(c.end)||"",r.endsWithParent&&a.terminatorEnd&&(c.terminatorEnd+=(r.end?"|":"")+a.terminatorEnd)),r.illegal&&(c.illegalRe=n(r.illegal)),r.contains||(r.contains=[]),r.contains=[].concat(...r.contains.map(function(_){return Ot(_==="self"?r:_)})),r.contains.forEach(function(_){b(_,c)}),r.starts&&b(r.starts,a),c.matcher=u(c),c}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.");return e.classNameAliases=ee(e.classNameAliases||{}),b(e)}function Xe(e){return e?e.endsWithParent||Xe(e.starts):!1}function Ot(e){return e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(n){return ee(e,{variants:null},n)})),e.cachedVariants?e.cachedVariants:Xe(e)?ee(e,{starts:e.starts?ee(e.starts):null}):Object.isFrozen(e)?ee(e):e}var yt="11.12.0",me=class extends Error{constructor(n,t){super(n),this.name="HTMLInjectionError",this.html=t}},Se=Ue,ke=ee,Be=Symbol("nomatch"),Mt=7,Ye=function(e){let n=Object.create(null),t=Object.create(null),s=[],u=!0,b="Could not find the language '{}', did you forget to load/include a language module?",r={disableAutodetect:!0,name:"Plain text",contains:[]},a={ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:Te};function c(i){return a.noHighlightRe.test(i)}function E(i){let g=i.className+" ";g+=i.parentNode?i.parentNode.className:"";let l=a.languageDetectRe.exec(g);if(l){let p=w(l[1]);return p||(De(b.replace("{}",l[1])),De("Falling back to no-highlight mode for this block.",i)),p?l[1]:"no-highlight"}return g.split(/\s+/).find(p=>c(p)||w(p))}function _(i,g,l){let p="",A="";typeof g=="object"?(p=i,l=g.ignoreIllegals,A=g.language):(ae("10.7.0","highlight(lang, code, ...args) has been deprecated."),ae("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),A=i,p=g),l===void 0&&(l=!0);let I={code:p,language:A};L("before:highlight",I);let P=I.result?I.result:m(I.language,I.code,l);return P.code=I.code,L("after:highlight",P),P}function m(i,g,l,p){let A=Object.create(null);function I(o,d){return o.keywords[d]}function P(){if(!f.keywords){k.addText(R);return}let o=0;f.keywordPatternRe.lastIndex=0;let d=f.keywordPatternRe.exec(R),h="";for(;d;){h+=R.substring(o,d.index);let T=Y.case_insensitive?d[0].toLowerCase():d[0],U=I(f,T);if(U){let[Q,Pn]=U;if(k.addText(h),h="",A[T]=(A[T]||0)+1,A[T]<=Mt&&(le+=Pn),Q.startsWith("_"))h+=d[0];else{let Un=Y.classNameAliases[Q]||Q;X(d[0],Un)}}else h+=d[0];o=f.keywordPatternRe.lastIndex,d=f.keywordPatternRe.exec(R)}h+=R.substring(o),k.addText(h)}function W(){if(R==="")return;let o=null;if(typeof f.subLanguage=="string"){if(!n[f.subLanguage]){k.addText(R);return}o=m(f.subLanguage,R,!0,xe[f.subLanguage]),xe[f.subLanguage]=o._top}else o=y(R,f.subLanguage.length?f.subLanguage:null);f.relevance>0&&(le+=o.relevance),k.__addSublanguage(o._emitter,o.language)}function H(){f.subLanguage!=null?W():P(),R=""}function X(o,d){o!==""&&(k.startScope(d),k.addText(o),k.endScope())}function ye(o,d){let h=1,T=d.length-1;for(;h<=T;){if(!o._emit[h]){h++;continue}let U=Y.classNameAliases[o[h]]||o[h],Q=d[h];U?X(Q,U):(R=Q,P(),R=""),h++}}function Me(o,d){return o.scope&&typeof o.scope=="string"&&k.openNode(Y.classNameAliases[o.scope]||o.scope),o.beginScope&&(o.beginScope._wrap?(X(R,Y.classNameAliases[o.beginScope._wrap]||o.beginScope._wrap),R=""):o.beginScope._multi&&(ye(o.beginScope,d),R="")),f=Object.create(o,{parent:{value:f}}),f}function Ie(o,d,h){let T=Kn(o.endRe,h);if(T){if(o["on:end"]){let U=new ge(o);o["on:end"](d,U),U.isMatchIgnored&&(T=!1)}if(T){for(;o.endsParent&&o.parent;)o=o.parent;return o}}if(o.endsWithParent)return Ie(o.parent,d,h)}function vn(o){return f.matcher.regexIndex===0?(R+=o[0],1):(he=!0,0)}function Ln(o){let d=o[0],h=o.rule,T=new ge(h),U=[h.__beforeBegin,h["on:begin"]];for(let Q of U)if(Q&&(Q(o,T),T.isMatchIgnored))return vn(d);return h.skip?R+=d:(h.excludeBegin&&(R+=d),H(),!h.returnBegin&&!h.excludeBegin&&(R=d)),Me(h,o),h.returnBegin?0:d.length}function Dn(o){let d=o[0],h=g.substring(o.index),T=Ie(f,o,h);if(!T)return Be;let U=f;f.endScope&&f.endScope._wrap?(H(),X(d,f.endScope._wrap)):f.endScope&&f.endScope._multi?(H(),ye(f.endScope,o)):U.skip?R+=d:(U.returnEnd||U.excludeEnd||(R+=d),H(),U.excludeEnd&&(R=d));do f.scope&&k.closeNode(),!f.skip&&!f.subLanguage&&(le+=f.relevance),f=f.parent;while(f!==T.parent);return T.starts&&Me(T.starts,o),U.returnEnd?0:d.length}function kn(){let o=[];for(let d=f;d!==Y;d=d.parent)d.scope&&o.unshift(d.scope);o.forEach(d=>k.openNode(d))}let oe={};function we(o,d){let h=d&&d[0];if(R+=o,h==null)return H(),0;if(oe.type==="begin"&&d.type==="end"&&oe.index===d.index&&h===""){if(R+=g.slice(d.index,d.index+1),!u){let T=new Error("0 width match regex (".concat(i,")"));throw T.languageName=i,T.badRule=oe.rule,T}return 1}if(oe=d,d.type==="begin")return Ln(d);if(d.type==="illegal"&&!l){let T=new Error('Illegal lexeme "'+h+'" for mode "'+(f.scope||"<unnamed>")+'"');throw T.mode=f,T}else if(d.type==="end"){let T=Dn(d);if(T!==Be)return T}if(d.type==="illegal"&&h==="")return d.index===g.length||(R+="\n"),1;if(pe>1e5&&pe>d.index*3)throw new Error("potential infinite loop, way more iterations than matches");return R+=h,h.length}let Y=w(i);if(!Y)throw te(b.replace("{}",i)),new Error('Unknown language: "'+i+'"');let Bn=Rt(Y),fe="",f=p||Bn,xe={},k=new a.__emitter(a);kn();let R="",le=0,ne=0,pe=0,he=!1;try{if(Y.__emitTokens)Y.__emitTokens(g,k);else{for(f.matcher.considerAll();;){pe++,he?he=!1:f.matcher.considerAll(),f.matcher.lastIndex=ne;let o=f.matcher.exec(g);if(!o)break;let d=g.substring(ne,o.index),h=we(d,o);ne=o.index+h}we(g.substring(ne))}return k.finalize(),fe=k.toHTML(),{language:i,value:fe,relevance:le,illegal:!1,_emitter:k,_top:f}}catch(o){if(o.message&&o.message.includes("Illegal"))return{language:i,value:Se(g),illegal:!0,relevance:0,_illegalBy:{message:o.message,index:ne,context:g.slice(ne-100,ne+100),mode:o.mode,resultSoFar:fe},_emitter:k};if(u)return{language:i,value:Se(g),illegal:!1,relevance:0,errorRaised:o,_emitter:k,_top:f};throw o}}function S(i){let g={value:Se(i),illegal:!1,relevance:0,_top:r,_emitter:new a.__emitter(a)};return g._emitter.addText(i),g}function y(i,g){g=g||a.languages||Object.keys(n);let l=S(i),p=g.filter(w).filter(K).map(H=>m(H,i,!1));p.unshift(l);let A=p.sort((H,X)=>{if(H.relevance!==X.relevance)return X.relevance-H.relevance;if(H.language&&X.language){if(w(H.language).supersetOf===X.language)return 1;if(w(X.language).supersetOf===H.language)return-1}return 0}),[I,P]=A,W=I;return W.secondBest=P,W}function O(i,g,l){let p=g&&t[g]||l;i.classList.add("hljs"),i.classList.add("language-".concat(p))}function N(i){let g=null,l=E(i);if(c(l))return;if(L("before:highlightElement",{el:i,language:l}),i.dataset.highlighted){console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",i);return}if(i.children.length>0&&(a.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(i)),a.throwUnescapedHTML))throw new me("One of your code blocks includes unescaped HTML.",i.innerHTML);g=i;let p=g.textContent,A=l?_(p,{language:l,ignoreIllegals:!0}):y(p);i.innerHTML=A.value,i.dataset.highlighted="yes",O(i,l,A.language),i.result={language:A.language,re:A.relevance,relevance:A.relevance},A.secondBest&&(i.secondBest={language:A.secondBest.language,relevance:A.secondBest.relevance}),L("after:highlightElement",{el:i,result:A,text:p})}function C(i){a=ke(a,i)}let $=()=>{v(),ae("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")};function x(){v(),ae("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.")}let F=!1;function v(){function i(){v()}if(document.readyState==="loading"){F||window.addEventListener("DOMContentLoaded",i,!1),F=!0;return}document.querySelectorAll(a.cssSelector).forEach(N)}function B(i,g){let l=null;try{l=g(e)}catch(p){if(te("Language definition for '{}' could not be registered.".replace("{}",i)),u)te(p);else throw p;l=r}l.name||(l.name=i),n[i]=l,l.rawDefinition=g.bind(null,e),l.aliases&&Z(l.aliases,{languageName:i})}function M(i){delete n[i];for(let g of Object.keys(t))t[g]===i&&delete t[g]}function q(){return Object.keys(n)}function w(i){return i=(i||"").toLowerCase(),n[i]||n[t[i]]}function Z(i,{languageName:g}){typeof i=="string"&&(i=[i]),i.forEach(l=>{t[l.toLowerCase()]=g})}function K(i){let g=w(i);return g&&!g.disableAutodetect}function J(i){i["before:highlightBlock"]&&!i["before:highlightElement"]&&(i["before:highlightElement"]=g=>{i["before:highlightBlock"](Object.assign({block:g.el},g))}),i["after:highlightBlock"]&&!i["after:highlightElement"]&&(i["after:highlightElement"]=g=>{i["after:highlightBlock"](Object.assign({block:g.el},g))})}function V(i){J(i),s.push(i)}function j(i){let g=s.indexOf(i);g!==-1&&s.splice(g,1)}function L(i,g){let l=i;s.forEach(function(p){p[l]&&p[l](g)})}function D(i){return ae("10.7.0","highlightBlock will be removed entirely in v12.0"),ae("10.7.0","Please use highlightElement now."),N(i)}Object.assign(e,{highlight:_,highlightAuto:y,highlightAll:v,highlightElement:N,highlightBlock:D,configure:C,initHighlighting:$,initHighlightingOnLoad:x,registerLanguage:B,unregisterLanguage:M,listLanguages:q,getLanguage:w,registerAliases:Z,autoDetection:K,inherit:ke,addPlugin:V,removePlugin:j}),e.debugMode=function(){u=!1},e.safeMode=function(){u=!0},e.versionString=yt,e.regex={concat:se,lookahead:$e,either:Ee,optional:zn,anyNumberOfTimes:Hn};for(let i in ue)typeof ue[i]=="object"&&Pe(ue[i]);return Object.assign(e,ue),e},ie=Ye({});ie.newInstance=()=>Ye({});qe.exports=ie;ie.HighlightJS=ie;ie.default=ie});var Ve=z((qt,Je)=>{function It(e){let n=e.regex,t={},s={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{className:"variable",variants:[{begin:n.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},s]});let u={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},b=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),r={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},a={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,t,u]};u.contains.push(a);let c={match:/\\"/},E={className:"string",begin:/'/,end:/'/},_={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t]},S=["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"],y=e.SHEBANG({binary:"(".concat(S.join("|"),")"),relevance:10}),O={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},N=["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],C=["true","false"],$={match:/(\/[a-z._-]+)+/},x=["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset"],F=["alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias"],v=["autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp"],B=["chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"];return{name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:N,literal:C,built_in:[...x,...F,"set","shopt",...v,...B]},contains:[y,e.SHEBANG(),O,m,b,r,$,a,c,E,_,t]}}Je.exports=It});var en=z((Qt,je)=>{function wt(e){let n=e.regex,t="HTTP/([32]|1\\.[01])",s=/[A-Za-z][A-Za-z0-9-]*/,u={className:"attribute",begin:n.concat("^",s,"(?=\\:\\s)"),starts:{contains:[{className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}},b=[u,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+t+" \\d{3})",end:/$/,contains:[{className:"meta",begin:t},{className:"number",begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:b}},{begin:"(?=^[A-Z]+ (.*?) "+t+"$)",end:/$/,contains:[{className:"string",begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:t},{className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:b}},e.inherit(u,{relevance:0})]}}je.exports=wt});var tn=z((Jt,nn)=>{function xt(e){let n=e.regex,t=n.concat(/[\p{L}_]/u,n.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s=/[\p{L}0-9._:-]+/u,u={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},b={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},r=e.inherit(b,{begin:/\(/,end:/\)/}),a=e.inherit(e.APOS_STRING_MODE,{className:"string"}),c=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),E={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:"attr",begin:s,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[u]},{begin:/'/,end:/'/,contains:[u]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[b,c,a,r,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[b,r,c,a]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},u,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[c]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[E],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:"css"}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[E],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:"javascript"}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:n.concat(/</,n.lookahead(n.concat(t,n.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:t,relevance:0,starts:E}]},{className:"tag",begin:n.concat(/<\//,n.lookahead(n.concat(t,/>/))),contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}nn.exports=xt});var an=z((Vt,sn)=>{function Ct(e){let n=e.regex,t=/(?![A-Za-z0-9])(?![$])/,s=n.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),u=n.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),b=n.concat(/[A-Z]+/,t),r={scope:"variable",match:"\\$+"+s},a={scope:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},c={scope:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},E=e.inherit(e.APOS_STRING_MODE,{illegal:null}),_=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,contains:e.QUOTE_STRING_MODE.contains.concat(c)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:e.QUOTE_STRING_MODE.contains.concat(c),"on:begin":(L,D)=>{D.data._beginMatch=L[1]||L[2]},"on:end":(L,D)=>{D.data._beginMatch!==L[1]&&D.ignoreMatch()}},S=e.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),y="[ \n]",O={scope:"string",variants:[_,E,m,S]},N={scope:"number",variants:[{begin:"\\b0[bB][01]+(?:_[01]+)*\\b"},{begin:"\\b0[oO][0-7]+(?:_[0-7]+)*\\b"},{begin:"\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b"},{begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?"}],relevance:0},C=["false","null","true"],$=["__CLASS__","__DIR__","__FILE__","__FUNCTION__","__COMPILER_HALT_OFFSET__","__LINE__","__METHOD__","__NAMESPACE__","__TRAIT__","die","echo","exit","include","include_once","print","require","require_once","array","abstract","and","as","binary","bool","boolean","break","callable","case","catch","class","clone","const","continue","declare","default","do","double","else","elseif","empty","enddeclare","endfor","endforeach","endif","endswitch","endwhile","enum","eval","extends","final","finally","float","for","foreach","from","global","goto","if","implements","instanceof","insteadof","int","integer","interface","isset","iterable","list","match|0","mixed","new","never","object","or","private","protected","public","readonly","real","return","string","switch","throw","trait","try","unset","use","var","void","while","xor","yield"],x=["Error|0","AppendIterator","ArgumentCountError","ArithmeticError","ArrayIterator","ArrayObject","AssertionError","BadFunctionCallException","BadMethodCallException","CachingIterator","CallbackFilterIterator","CompileError","Countable","DirectoryIterator","DivisionByZeroError","DomainException","EmptyIterator","ErrorException","Exception","FilesystemIterator","FilterIterator","GlobIterator","InfiniteIterator","InvalidArgumentException","IteratorIterator","LengthException","LimitIterator","LogicException","MultipleIterator","NoRewindIterator","OutOfBoundsException","OutOfRangeException","OuterIterator","OverflowException","ParentIterator","ParseError","RangeException","RecursiveArrayIterator","RecursiveCachingIterator","RecursiveCallbackFilterIterator","RecursiveDirectoryIterator","RecursiveFilterIterator","RecursiveIterator","RecursiveIteratorIterator","RecursiveRegexIterator","RecursiveTreeIterator","RegexIterator","RuntimeException","SeekableIterator","SplDoublyLinkedList","SplFileInfo","SplFileObject","SplFixedArray","SplHeap","SplMaxHeap","SplMinHeap","SplObjectStorage","SplObserver","SplPriorityQueue","SplQueue","SplStack","SplSubject","SplTempFileObject","TypeError","UnderflowException","UnexpectedValueException","UnhandledMatchError","ArrayAccess","BackedEnum","Closure","Fiber","Generator","Iterator","IteratorAggregate","Serializable","Stringable","Throwable","Traversable","UnitEnum","WeakReference","WeakMap","Directory","__PHP_Incomplete_Class","parent","php_user_filter","self","static","stdClass"],v={keyword:$,literal:(L=>{let D=[];return L.forEach(i=>{D.push(i),i.toLowerCase()===i?D.push(i.toUpperCase()):D.push(i.toLowerCase())}),D})(C),built_in:x},B=L=>L.map(D=>D.replace(/\|\d+$/,"")),M={variants:[{match:[/new/,n.concat(y,"+"),n.concat("(?!",B(x).join("\\b|"),"\\b)"),u],scope:{1:"keyword",4:"title.class"}}]},q=n.concat(s,"\\b(?!\\()"),w={variants:[{match:[n.concat(/::/,n.lookahead(/(?!class\b)/)),q],scope:{2:"variable.constant"}},{match:[/::/,/class/],scope:{2:"variable.language"}},{match:[u,n.concat(/::/,n.lookahead(/(?!class\b)/)),q],scope:{1:"title.class",3:"variable.constant"}},{match:[u,n.concat("::",n.lookahead(/(?!class\b)/))],scope:{1:"title.class"}},{match:[u,/::/,/class/],scope:{1:"title.class",3:"variable.language"}}]},Z={scope:"attr",match:n.concat(s,n.lookahead(":"),n.lookahead(/(?!::)/))},K={relevance:0,begin:/\(/,end:/\)/,keywords:v,contains:[Z,r,w,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,O,N,M]},J={relevance:0,match:[/\b/,n.concat("(?!fn\\b|function\\b|",B($).join("\\b|"),"|",B(x).join("\\b|"),"\\b)"),s,n.concat(y,"*"),n.lookahead(/(?=\()/)],scope:{3:"title.function.invoke"},contains:[K]};K.contains.push(J);let V=[Z,w,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,O,N,M],j={begin:n.concat(/#\[\s*\\?/,n.either(u,b)),beginScope:"meta",end:/]/,endScope:"meta",keywords:{literal:C,keyword:["new","array"]},contains:[{begin:/\[/,end:/]/,keywords:{literal:C,keyword:["new","array"]},contains:["self",...V]},...V,{scope:"meta",variants:[{match:u},{match:b}]}]};return{case_insensitive:!1,keywords:v,contains:[j,e.HASH_COMMENT_MODE,e.COMMENT("//","$"),e.COMMENT("/\\*","\\*/",{contains:[{scope:"doctag",match:"@[A-Za-z]+"}]}),{match:/__halt_compiler\(\);/,keywords:"__halt_compiler",starts:{scope:"comment",end:e.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:"meta",endsParent:!0}]}},a,{scope:"variable.language",match:/\$this\b/},r,J,w,{match:[/const/,/\s/,s],scope:{1:"keyword",3:"variable.constant"}},M,{scope:"function",relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{begin:"=>",endsParent:!0},{scope:"params",begin:"\\(",end:"\\)",excludeBegin:!0,excludeEnd:!0,keywords:v,contains:["self",j,r,w,e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE,e.HASH_COMMENT_MODE,O,N]}]},{scope:"class",variants:[{beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{scope:"title.class"})]},{beginKeywords:"use",relevance:0,end:";",contains:[{match:/\b(as|const|function)\b/,scope:"keyword"},e.UNDERSCORE_TITLE_MODE]},O,N]}}sn.exports=Ct});var cn=z((jt,rn)=>{var vt="([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity",Lt={scope:"number",match:vt,relevance:0};function Dt(e){let n={className:"attr",begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:"punctuation",relevance:0},s=["true","false","null"],u={scope:"literal",beginKeywords:s.join(" ")};return{name:"JSON",aliases:["jsonc","json5"],keywords:{literal:s},contains:[n,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,u,Lt,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}rn.exports=Dt});var En=z((es,dn)=>{var on="[A-Za-z$_][0-9A-Za-z$_]*",kt=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Bt=["true","false","null","undefined","NaN","Infinity"],ln=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],un=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],gn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Pt=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],Ut=[].concat(gn,ln,un);function $t(e){let n=e.regex,t=(l,{after:p})=>{let A="</"+l[0].slice(1);return l.input.indexOf(A,p)!==-1},s=on,u={begin:"<>",end:"</>"},b=/<[A-Za-z0-9\\._:-]+\s*\/>/,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(l,p)=>{let A=l[0].length+l.index,I=l.input[A];if(I==="<"||I===","){p.ignoreMatch();return}I===">"&&(t(l,{after:A})||p.ignoreMatch());let P,W=l.input.substring(A);if(P=W.match(/^\s*=/)){p.ignoreMatch();return}if((P=W.match(/^\s+extends\s+/))&&P.index===0){p.ignoreMatch();return}}},a={$pattern:on,keyword:kt,literal:Bt,built_in:Ut,"variable.language":Pt},c="[0-9](_?[0-9])*",E="\\.(".concat(c,")"),_="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:"(\\b(".concat(_,")((").concat(E,")|\\.)?|(").concat(E,"))")+"[eE][+-]?(".concat(c,")\\b")},{begin:"\\b(".concat(_,")\\b((").concat(E,")\\b|\\.)?|(").concat(E,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},O={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},C={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,S]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},F=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,O,N,C,{match:/\$\d+/},m];S.contains=F.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(F)});let v=[].concat(x,S.contains),B=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:B},q={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,n.concat(s,"(",n.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},w={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...ln,...un]}},Z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},K={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},J={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(l){return n.concat("(?!",l.join("|"),")")}let j={match:n.concat(/\b/,V([...gn,"super","import","await"].map(l=>"".concat(l,"\\s*\\("))),s,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},L={begin:n.concat(/\./,n.lookahead(n.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},D={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},i="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",g={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(i)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:w},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),Z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,O,N,C,x,{match:/\$\d+/},m,w,{scope:"attr",match:s+n.lookahead(":"),relevance:0},g,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:i,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:u.begin,end:u.end},{match:b},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},K,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},L,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},j,J,q,D,{match:/\$[(.]/}]}}dn.exports=$t});var _n=z((ns,bn)=>{function Ft(e){let n=e.regex,t="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",s=n.either(/\b([A-Z]+[a-z0-9]+)+/,/\b([A-Z]+[a-z0-9]+)+[A-Z]+/),u=n.concat(s,/(::\w+)*/),r={"variable.constant":["__FILE__","__LINE__","__ENCODING__"],"variable.language":["self","super"],keyword:["alias","and","begin","BEGIN","break","case","class","defined","do","else","elsif","end","END","ensure","for","if","in","module","next","not","or","redo","require","rescue","retry","return","then","undef","unless","until","when","while","yield",...["include","extend","prepend","public","private","protected","raise","throw"]],built_in:["proc","lambda","attr_accessor","attr_reader","attr_writer","define_method","private_constant","module_function"],literal:["true","false","nil"]},a={className:"doctag",begin:"@[A-Za-z]+"},c={begin:"#<",end:">"},E=[e.COMMENT("#","$",{contains:[a]}),e.COMMENT("^=begin","^=end",{contains:[a],relevance:10}),e.COMMENT("^__END__",e.MATCH_NOTHING_RE)],_={className:"subst",begin:/#\{/,end:/\}/,keywords:r},m={className:"string",contains:[e.BACKSLASH_ESCAPE,_],variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{begin:n.concat(/<<[-~]?'?/,n.lookahead(/(\w+)(?=\W)[^\n]*\n(?:[^\n]*\n)*?\s*\1\b/)),contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,contains:[e.BACKSLASH_ESCAPE,_]})]}]},S="[1-9](_?[0-9])*|0",y="[0-9](_?[0-9])*",O={className:"number",relevance:0,variants:[{begin:"\\b(".concat(S,")(\\.(").concat(y,"))?([eE][+-]?(").concat(y,")|r)?i?\\b")},{begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{begin:"\\b0(_?[0-7])+r?i?\\b"}]},N={variants:[{match:/\(\)/},{className:"params",begin:/\(/,end:/(?=\))/,excludeBegin:!0,endsParent:!0,keywords:r}]},M=[m,{variants:[{match:[/class\s+/,u,/\s+<\s+/,u]},{match:[/\b(class|module)\s+/,u]}],scope:{2:"title.class",4:"title.class.inherited"},keywords:r},{match:[/(include|extend)\s+/,u],scope:{2:"title.class"},keywords:r},{relevance:0,match:[u,/\.new[. (]/],scope:{1:"title.class"}},{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},{relevance:0,match:s,scope:"title.class"},{match:[/def/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[N]},{begin:"::"},{className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",begin:":(?!\\s)",contains:[m,{begin:t}],relevance:0},O,{className:"variable",begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{className:"params",begin:/\|(?!=)/,end:/\|/,excludeBegin:!0,excludeEnd:!0,relevance:0,keywords:r},{begin:"("+e.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{className:"regexp",contains:[e.BACKSLASH_ESCAPE,_],illegal:/\n/,variants:[{begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]}].concat(c,E),relevance:0}].concat(c,E);_.contains=M,N.contains=M;let K=[{begin:/^\s*=>/,starts:{end:"$",contains:M}},{className:"meta.prompt",begin:"^("+"[>?]>"+"|"+"[\\w#]+\\(\\w+\\):\\d+:\\d+[>*]"+"|"+"(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>"+")(?=[ ])",starts:{end:"$",keywords:r,contains:M}}];return E.unshift(c),{name:"Ruby",aliases:["rb","gemspec","podspec","thor","irb"],keywords:r,illegal:/\/\*/,contains:[e.SHEBANG({binary:"ruby"})].concat(K).concat(E).concat(M)}}bn.exports=Ft});var pn=z((ts,fn)=>{function Ht(e){let b={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return{name:"Go",aliases:["golang"],keywords:b,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:!0,keywords:b,illegal:/["']/}]}]}}fn.exports=Ht});var Sn=z((ss,hn)=>{function zt(e){let n=e.regex,t=/(r#)?/,s=n.concat(t,e.UNDERSCORE_IDENT_RE),u=n.concat(t,e.IDENT_RE),b={scope:"title.function.invoke",relevance:0,begin:n.concat(/\b/,/(?!(?:let|for|while|if|else|match)\b)/,u,n.lookahead(/\s*\(/))},r="([ui](8|16|32|64|128|size)|f(16|32|64|128))?",a=["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","raw","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],c=["true","false","Some","None","Ok","Err"],E=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],_=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f16","f32","f64","f128","str","char","bool","Box","Option","Result","String","Vec"];return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:_,keyword:a,literal:c,built_in:E},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{scope:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|"|\\|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{scope:"number",variants:[{begin:"\\b0b([01_]+)"+r},{begin:"\\b0o([0-7_]+)"+r},{begin:"\\b0x([A-Fa-f0-9_]+)"+r},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+r}],relevance:0},{begin:[/\bsafe/,/\s+/,/extern/],scope:{1:"keyword",3:"keyword"}},{begin:[/fn/,/\s+/,s],scope:{1:"keyword",3:"title.function"}},{scope:"meta",begin:"#!?\\[",end:"\\]",contains:[{scope:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,s],scope:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,s,/\s+/,/in/],scope:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,s],scope:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:E,type:_}},{scope:"punctuation",begin:"->"},b]}}hn.exports=zt});var An=z((as,Nn)=>{function Gt(e){let n=e.regex,t=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),s=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","lazy","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:s,built_in:["__import__","abs","aiter","all","anext","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozendict","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","sentinel","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},c={className:"meta",begin:/^(>>>|\.\.\.) /},E={className:"subst",begin:/\{/,end:/\}/,keywords:a,illegal:/#/},_={begin:/\{\{/,relevance:0},m={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,c],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,c,_,E]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,c,_,E]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,_,E]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,_,E]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},S="[0-9](_?[0-9])*",y="(\\b(".concat(S,"))?\\.(").concat(S,")|\\b(").concat(S,")\\."),O="\\b|".concat(s.join("|")),N={className:"number",relevance:0,variants:[{begin:"(\\b(".concat(S,")|(").concat(y,"))[eE][+-]?(").concat(S,")[jJ]?(?=").concat(O,")")},{begin:"(".concat(y,")[jJ]?")},{begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=".concat(O,")")},{begin:"\\b0[bB](_?[01])+[lL]?(?=".concat(O,")")},{begin:"\\b0[oO](_?[0-7])+[lL]?(?=".concat(O,")")},{begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=".concat(O,")")},{begin:"\\b(".concat(S,")[jJ](?=").concat(O,")")}]},C={className:"comment",begin:n.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},$={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:["self",c,N,m,e.HASH_COMMENT_MODE]}]};return E.contains=[m,N,c],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[c,N,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},m,C,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:"keyword",3:"title.function"},contains:[$]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[N,$,m]}]}}Nn.exports=Gt});var xn=z((is,wn)=>{var _e="[A-Za-z$_][0-9A-Za-z$_]*",Tn=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],mn=["true","false","null","undefined","NaN","Infinity"],Rn=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],On=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],yn=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Mn=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","self","global"],In=[].concat(yn,Rn,On);function Kt(e){let n=e.regex,t=(l,{after:p})=>{let A="</"+l[0].slice(1);return l.input.indexOf(A,p)!==-1},s=_e,u={begin:"<>",end:"</>"},b=/<[A-Za-z0-9\\._:-]+\s*\/>/,r={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(l,p)=>{let A=l[0].length+l.index,I=l.input[A];if(I==="<"||I===","){p.ignoreMatch();return}I===">"&&(t(l,{after:A})||p.ignoreMatch());let P,W=l.input.substring(A);if(P=W.match(/^\s*=/)){p.ignoreMatch();return}if((P=W.match(/^\s+extends\s+/))&&P.index===0){p.ignoreMatch();return}}},a={$pattern:_e,keyword:Tn,literal:mn,built_in:In,"variable.language":Mn},c="[0-9](_?[0-9])*",E="\\.(".concat(c,")"),_="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",m={className:"number",variants:[{begin:"(\\b(".concat(_,")((").concat(E,")|\\.)?|(").concat(E,"))")+"[eE][+-]?(".concat(c,")\\b")},{begin:"\\b(".concat(_,")\\b((").concat(E,")\\b|\\.)?|(").concat(E,")\\b")},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},S={className:"subst",begin:"\\$\\{",end:"\\}",keywords:a,contains:[]},y={begin:".?html`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"xml"}},O={begin:".?css`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"css"}},N={begin:".?gql`",end:"",starts:{end:"`",returnEnd:!1,contains:[e.BACKSLASH_ESCAPE,S],subLanguage:"graphql"}},C={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,S]},x={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:!0,excludeBegin:!0,relevance:0},{className:"variable",begin:s+"(?=\\s*(-)|$)",endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},F=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,O,N,C,{match:/\$\d+/},m];S.contains=F.concat({begin:/\{/,end:/\}/,keywords:a,contains:["self"].concat(F)});let v=[].concat(x,S.contains),B=v.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:["self"].concat(v)}]),M={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:B},q={variants:[{match:[/class/,/\s+/,s,/\s+/,/extends/,/\s+/,n.concat(s,"(",n.concat(/\./,s),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,s],scope:{1:"keyword",3:"title.class"}}]},w={relevance:0,match:n.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Rn,...On]}},Z={label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},K={variants:[{match:[/function/,/\s+/,s,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[M],illegal:/%/},J={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"};function V(l){return n.concat("(?!",l.join("|"),")")}let j={match:n.concat(/\b/,V([...yn,"super","import","await"].map(l=>"".concat(l,"\\s*\\("))),s,n.lookahead(/\s*\(/)),className:"title.function",relevance:0},L={begin:n.concat(/\./,n.lookahead(n.concat(s,/(?![0-9A-Za-z$_(])/))),end:s,excludeBegin:!0,keywords:"prototype",className:"property",relevance:0},D={match:[/get|set/,/\s+/,s,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},M]},i="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",g={match:[/const|var|let/,/\s+/,s,/\s*/,/=\s*/,/(async\s*)?/,n.lookahead(i)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[M]};return{name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:a,exports:{PARAMS_CONTAINS:B,CLASS_REFERENCE:w},illegal:/#(?![$_A-Za-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),Z,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,y,O,N,C,x,{match:/\$\d+/},m,w,{scope:"attr",match:s+n.lookahead(":"),relevance:0},g,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[x,e.REGEXP_MODE,{className:"function",begin:i,returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:B}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:u.begin,end:u.end},{match:b},{begin:r.begin,"on:begin":r.isTrulyOpeningTag,end:r.end}],subLanguage:"xml",contains:[{begin:r.begin,end:r.end,skip:!0,contains:["self"]}]}]},K,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:!0,label:"func.def",contains:[M,e.inherit(e.TITLE_MODE,{begin:s,className:"title.function"})]},{match:/\.\.\./,relevance:0},L,{match:"\\$"+s,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[M]},j,J,q,D,{match:/\$[(.]/}]}}function Zt(e){let n=e.regex,t=Kt(e),s=_e,u=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],b={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},r={beginKeywords:"interface",end:/\{/,excludeEnd:!0,keywords:{keyword:"interface extends",built_in:u},contains:[t.exports.CLASS_REFERENCE]},a={className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/},c=["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"],E={$pattern:_e,keyword:Tn.concat(c),literal:mn,built_in:In.concat(u),"variable.language":Mn},_={className:"meta",begin:"@"+s},m=(N,C,$)=>{let x=N.contains.findIndex(F=>F.label===C);if(x===-1)throw new Error("can not find mode to replace");N.contains.splice(x,1,$)};Object.assign(t.keywords,E),t.exports.PARAMS_CONTAINS.push(_);let S=t.contains.find(N=>N.scope==="attr"),y=Object.assign({},S,{match:n.concat(s,n.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,S,y]),t.contains=t.contains.concat([_,b,r,y]),m(t,"shebang",e.SHEBANG()),m(t,"use_strict",a);let O=t.contains.find(N=>N.label==="func.def");return O.relevance=0,Object.assign(t,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),t}wn.exports=Zt});var Wt=z((rs,Cn)=>{var G=Qe();G.registerLanguage("bash",Ve());G.registerLanguage("http",en());G.registerLanguage("xml",tn());G.registerLanguage("php",an());G.registerLanguage("json",cn());G.registerLanguage("javascript",En());G.registerLanguage("ruby",_n());G.registerLanguage("go",pn());G.registerLanguage("rust",Sn());G.registerLanguage("python",An());G.registerLanguage("typescript",xn());Cn.exports=G});return Wt();})();
|
|
@@ -1,9 +1,19 @@
|
|
|
1
1
|
importScripts('highlight.pack.js');
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
else
|
|
8
|
-
postMessage(hljs.highlightAuto(e.data.code).value);
|
|
3
|
+
function plainText(source) {
|
|
4
|
+
return source.replace(/[&<>"']/g, function (value) {
|
|
5
|
+
return { '&': '&', '<': '<', '>': '>', '"': '"', "'": ''' }[value];
|
|
6
|
+
});
|
|
9
7
|
}
|
|
8
|
+
|
|
9
|
+
onmessage = function (e) {
|
|
10
|
+
var source = String(e.data.code || '');
|
|
11
|
+
var language = e.data.language;
|
|
12
|
+
try {
|
|
13
|
+
postMessage(language && hljs.getLanguage(language)
|
|
14
|
+
? hljs.highlight(source, { language: language, ignoreIllegals: true }).value
|
|
15
|
+
: plainText(source));
|
|
16
|
+
} catch (error) {
|
|
17
|
+
postMessage(plainText(source));
|
|
18
|
+
}
|
|
19
|
+
};
|
|
@@ -19,13 +19,21 @@ $(document).ready(function () {
|
|
|
19
19
|
|
|
20
20
|
worker.onmessage = function (e) {
|
|
21
21
|
currentElement.innerHTML = e.data;
|
|
22
|
+
currentElement.classList.add('hljs');
|
|
22
23
|
highlightNext();
|
|
23
24
|
};
|
|
25
|
+
worker.onerror = function () {
|
|
26
|
+
worker.terminate();
|
|
27
|
+
// The server's escaped source remains readable if the worker fails.
|
|
28
|
+
};
|
|
24
29
|
|
|
25
30
|
highlightNext();
|
|
26
31
|
|
|
27
32
|
} else {
|
|
28
|
-
|
|
33
|
+
document.querySelectorAll('pre code').forEach(function (element) {
|
|
34
|
+
if (hljs.getLanguage(element.classList.item(0)))
|
|
35
|
+
hljs.highlightElement(element);
|
|
36
|
+
});
|
|
29
37
|
}
|
|
30
38
|
});
|
|
31
39
|
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
this.opts = opts;
|
|
4
4
|
|
|
5
5
|
var ul = this.createElement(document.createElement('UL'));
|
|
6
|
+
ul.setAttribute('role', 'tablist');
|
|
6
7
|
var tabNum = opts.tabs.children.length;
|
|
8
|
+
if (!tabNum) return;
|
|
7
9
|
|
|
8
10
|
for (var i = 0; i < tabNum; i++) {
|
|
9
11
|
var tab = opts.tabs.children[i];
|
|
@@ -50,6 +52,11 @@
|
|
|
50
52
|
var a_text = document.createTextNode(this.getTitle(tab));
|
|
51
53
|
|
|
52
54
|
a.href = '#' + tab.id;
|
|
55
|
+
a.id = 'tab-button-' + tab.id;
|
|
56
|
+
a.setAttribute('role', 'tab');
|
|
57
|
+
a.setAttribute('aria-controls', tab.id);
|
|
58
|
+
tab.setAttribute('role', 'tabpanel');
|
|
59
|
+
tab.setAttribute('aria-labelledby', a.id);
|
|
53
60
|
|
|
54
61
|
var that = this;
|
|
55
62
|
|
|
@@ -59,6 +66,18 @@
|
|
|
59
66
|
if (history.pushState)
|
|
60
67
|
e.preventDefault();
|
|
61
68
|
});
|
|
69
|
+
a.addEventListener('keydown', function (e) {
|
|
70
|
+
var links = Array.prototype.slice.call(that.opts.tabBar.querySelectorAll('[role="tab"]'));
|
|
71
|
+
var index = links.indexOf(a);
|
|
72
|
+
if (e.key === 'ArrowRight') index = (index + 1) % links.length;
|
|
73
|
+
else if (e.key === 'ArrowLeft') index = (index + links.length - 1) % links.length;
|
|
74
|
+
else if (e.key === 'Home') index = 0;
|
|
75
|
+
else if (e.key === 'End') index = links.length - 1;
|
|
76
|
+
else return;
|
|
77
|
+
e.preventDefault();
|
|
78
|
+
links[index].focus();
|
|
79
|
+
that.switchTab(that.opts.tabs.children[index]);
|
|
80
|
+
});
|
|
62
81
|
|
|
63
82
|
a.appendChild(a_text);
|
|
64
83
|
li.appendChild(a);
|
|
@@ -80,7 +99,7 @@
|
|
|
80
99
|
|
|
81
100
|
if (typeof s === 'string' || s instanceof String) {
|
|
82
101
|
var el = tab.querySelector(s);
|
|
83
|
-
var ret = el.
|
|
102
|
+
var ret = el.textContent;
|
|
84
103
|
|
|
85
104
|
if (this.opts.removeHeading === undefined || this.opts.removeHeading)
|
|
86
105
|
el.parentElement.removeChild(el);
|
|
@@ -167,7 +186,7 @@
|
|
|
167
186
|
this.activate([targetTab, targetTab.tabAnchor]);
|
|
168
187
|
|
|
169
188
|
// afterChange
|
|
170
|
-
if (this.opts.
|
|
189
|
+
if (this.opts.afterChange !== undefined)
|
|
171
190
|
this.opts.afterChange(targetTab, activeTab);
|
|
172
191
|
};
|
|
173
192
|
|
|
@@ -177,6 +196,13 @@
|
|
|
177
196
|
for (var i = 0; i < len; i++) {
|
|
178
197
|
elems[i].classList.remove(this.opts.hiddenClass);
|
|
179
198
|
elems[i].classList.add(this.opts.activeClass);
|
|
199
|
+
var link = elems[i].querySelector('[role="tab"]');
|
|
200
|
+
if (link) {
|
|
201
|
+
link.setAttribute('aria-selected', 'true');
|
|
202
|
+
link.setAttribute('tabindex', '0');
|
|
203
|
+
} else if (elems[i].getAttribute('role') === 'tabpanel') {
|
|
204
|
+
elems[i].setAttribute('aria-hidden', 'false');
|
|
205
|
+
}
|
|
180
206
|
}
|
|
181
207
|
};
|
|
182
208
|
|
|
@@ -185,7 +211,15 @@
|
|
|
185
211
|
|
|
186
212
|
for (var i = 0; i < len; i++) {
|
|
187
213
|
elems[i].classList.remove(this.opts.activeClass);
|
|
188
|
-
elems[i].
|
|
214
|
+
if (elems[i].getAttribute('role') === 'tabpanel')
|
|
215
|
+
elems[i].classList.add(this.opts.hiddenClass);
|
|
216
|
+
var link = elems[i].querySelector('[role="tab"]');
|
|
217
|
+
if (link) {
|
|
218
|
+
link.setAttribute('aria-selected', 'false');
|
|
219
|
+
link.setAttribute('tabindex', '-1');
|
|
220
|
+
} else if (elems[i].getAttribute('role') === 'tabpanel') {
|
|
221
|
+
elems[i].setAttribute('aria-hidden', 'true');
|
|
222
|
+
}
|
|
189
223
|
}
|
|
190
224
|
};
|
|
191
225
|
|