detached 4333716

wip

commit
43337169d19d7b1090faed0c48b9ab5ffb28eb99
author
bamen · · 2025-06-02 15:05 UTC
parent
f30976a
signature
unsigned
1607 files · +178060 -7862
M .gitignore +7 -2
@@ -1,9 +1,10 @@
11 .env
2-node_modules/
2+# Node.js/Bun specific (removed)
3+# node_modules/
34 *tmp/
45 tmp/*
56 config.yml
6-bun.lockb
7+# bun.lockb
78 *.log
89 *.txt
910 *sync-conflict*
@@ -16,3 +17,7 @@ setup.sh
1617 sqlite.db
1718 .vscode/
1819 admin-ui/
20+
21+# Standalone Tailwind/DaisyUI
22+tailwindcss
23+daisyui.js
@@ -1,9 +1,10 @@
1 .env1 .env
2-node_modules/2+# Node.js/Bun specific (removed)
3+# node_modules/
3 *tmp/4 *tmp/
4 tmp/*5 tmp/*
5 config.yml6 config.yml
6-bun.lockb7+# bun.lockb
7 *.log8 *.log
8 *.txt9 *.txt
9 *sync-conflict*10 *sync-conflict*
@@ -16,3 +17,7 @@ setup.sh
16 sqlite.db17 sqlite.db
17 .vscode/18 .vscode/
18 admin-ui/19 admin-ui/
20+
21+# Standalone Tailwind/DaisyUI
22+tailwindcss
23+daisyui.js
M .goreleaser.yaml +1 -1
@@ -4,7 +4,7 @@ before:
44 hooks:
55 - go mod tidy
66 - templ generate
7- - bun run build:css
7+ - tailwindcss -i internal/webui/public/assets/css/custom.css -o internal/webui/public/assets/css/tailwind.css
88
99 release:
1010 draft: true
@@ -4,7 +4,7 @@ before:
4 hooks:4 hooks:
5 - go mod tidy5 - go mod tidy
6 - templ generate6 - templ generate
7- - bun run build:css7+ - tailwindcss -i internal/webui/public/assets/css/custom.css -o internal/webui/public/assets/css/tailwind.css
8 8
9 release:9 release:
10 draft: true10 draft: true
M Makefile +1 -1
@@ -38,7 +38,7 @@ build: build-css build-templ
3838 # Build CSS with tailwindcss
3939 build-css:
4040 @echo "Building CSS with tailwindcss..."
41- @bun run build:css
41+ @tailwindcss -i internal/webui/public/assets/css/custom.css -o internal/webui/public/assets/css/tailwind.css
4242 @echo "CSS built successfully"
4343
4444 # Generate Go code from templ templates
@@ -38,7 +38,7 @@ build: build-css build-templ
38 # Build CSS with tailwindcss38 # Build CSS with tailwindcss
39 build-css:39 build-css:
40 @echo "Building CSS with tailwindcss..."40 @echo "Building CSS with tailwindcss..."
41- @bun run build:css41+ @tailwindcss -i internal/webui/public/assets/css/custom.css -o internal/webui/public/assets/css/tailwind.css
42 @echo "CSS built successfully"42 @echo "CSS built successfully"
43 43
44 # Generate Go code from templ templates44 # Generate Go code from templ templates
M internal/httpserve/handlers/container_crud.go +34 -22
@@ -1,8 +1,8 @@
11 package handlers
22
33 import (
4+ "encoding/json"
45 "fmt"
5- "net/http"
66 "strings"
77
88 "github.com/bnema/gordon/internal/server"
@@ -126,25 +126,6 @@ func CreateContainerFullGET(c echo.Context, a *server.App) error {
126126 func CreateContainerPOST(c echo.Context, a *server.App) error {
127127 log.Debug("CreateContainerPOST handler called")
128128
129- // Retrieve the ShortID of the image from the URL
130- ShortID := c.Param("ID")
131- log.Debug("Received ShortID for container creation:", "ShortID", ShortID)
132-
133- // Convert the ShortID to a full image ID
134- imageID, err := FromShortIDToImageID(ShortID)
135- if err != nil {
136- log.Error("Error converting ShortID to full image ID:", "error", err)
137- return sendError(c, err)
138- }
139- log.Debug("Converted ShortID to full image ID:", "imageID", imageID)
140-
141- // Get the image info
142- _, err = docker.GetImageInfo(imageID)
143- if err != nil {
144- log.Error("Error getting image info:", "error", err)
145- return sendError(c, err)
146- }
147-
148129 // Retrieve all form parameters
149130 formParams, err := c.FormParams()
150131 if err != nil {
@@ -165,6 +146,22 @@ func CreateContainerPOST(c echo.Context, a *server.App) error {
165146 }
166147 }
167148
149+ // Get the full image ID directly from the sanitized form inputs
150+ imageID, ok := sanitizedInputs["image_id"]
151+ if !ok || imageID == "" {
152+ log.Error("Full image ID not found in form submission")
153+ // You might want to return a more specific error message to the user here
154+ return sendError(c, fmt.Errorf("missing image ID in form submission"))
155+ }
156+ log.Debug("Retrieved full image ID from form:", "imageID", imageID)
157+
158+ // Get the image info (Optional but good practice: verify the image ID still exists)
159+ _, err = docker.GetImageInfo(imageID)
160+ if err != nil {
161+ log.Error("Error getting image info:", "error", err)
162+ return sendError(c, err)
163+ }
164+
168165 cmdParams, err := cmdparams.FromInputsToCmdParams(sanitizedInputs, a)
169166 if err != nil {
170167 return sendError(c, err)
@@ -229,6 +226,21 @@ func CreateContainerPOST(c echo.Context, a *server.App) error {
229226 log.Info("Skipping proxy setup as requested", "container_id", containerID, "container_name", containerName)
230227 }
231228
232- // Redirect to the container list page
233- return c.Redirect(http.StatusSeeOther, fmt.Sprintf("%s/containers", a.Config.Admin.Path))
229+ // Prepare success message payload
230+ successPayload := map[string]string{
231+ "level": "success",
232+ "message": fmt.Sprintf("Container '%s' created successfully.", containerName),
233+ }
234+ jsonPayload, err := json.Marshal(successPayload)
235+ if err != nil {
236+ // Log the error, but proceed with redirect as container creation was likely successful
237+ log.Error("Failed to marshal success payload for HX-Trigger", "error", err)
238+ } else {
239+ c.Response().Header().Set("HX-Trigger", fmt.Sprintf(`{"showMessage": %s}`, string(jsonPayload)))
240+ }
241+
242+ // Render a success message fragment instead of redirecting
243+ renderer := render.NewTemplRenderer(a)
244+ successMsg := fmt.Sprintf("Container '%s' created successfully.", containerName)
245+ return renderer.RenderTempl(c, templcomponents.Success(successMsg)) // Use the correct Success component
234246 }
@@ -1,8 +1,8 @@
1 package handlers1 package handlers
2 2
3 import (3 import (
4+ "encoding/json"
4 "fmt"5 "fmt"
5- "net/http"
6 "strings"6 "strings"
7 7
8 "github.com/bnema/gordon/internal/server"8 "github.com/bnema/gordon/internal/server"
@@ -126,25 +126,6 @@ func CreateContainerFullGET(c echo.Context, a *server.App) error {
126 func CreateContainerPOST(c echo.Context, a *server.App) error {126 func CreateContainerPOST(c echo.Context, a *server.App) error {
127 log.Debug("CreateContainerPOST handler called")127 log.Debug("CreateContainerPOST handler called")
128 128
129- // Retrieve the ShortID of the image from the URL
130- ShortID := c.Param("ID")
131- log.Debug("Received ShortID for container creation:", "ShortID", ShortID)
132-
133- // Convert the ShortID to a full image ID
134- imageID, err := FromShortIDToImageID(ShortID)
135- if err != nil {
136- log.Error("Error converting ShortID to full image ID:", "error", err)
137- return sendError(c, err)
138- }
139- log.Debug("Converted ShortID to full image ID:", "imageID", imageID)
140-
141- // Get the image info
142- _, err = docker.GetImageInfo(imageID)
143- if err != nil {
144- log.Error("Error getting image info:", "error", err)
145- return sendError(c, err)
146- }
147-
148 // Retrieve all form parameters129 // Retrieve all form parameters
149 formParams, err := c.FormParams()130 formParams, err := c.FormParams()
150 if err != nil {131 if err != nil {
@@ -165,6 +146,22 @@ func CreateContainerPOST(c echo.Context, a *server.App) error {
165 }146 }
166 }147 }
167 148
149+ // Get the full image ID directly from the sanitized form inputs
150+ imageID, ok := sanitizedInputs["image_id"]
151+ if !ok || imageID == "" {
152+ log.Error("Full image ID not found in form submission")
153+ // You might want to return a more specific error message to the user here
154+ return sendError(c, fmt.Errorf("missing image ID in form submission"))
155+ }
156+ log.Debug("Retrieved full image ID from form:", "imageID", imageID)
157+
158+ // Get the image info (Optional but good practice: verify the image ID still exists)
159+ _, err = docker.GetImageInfo(imageID)
160+ if err != nil {
161+ log.Error("Error getting image info:", "error", err)
162+ return sendError(c, err)
163+ }
164+
168 cmdParams, err := cmdparams.FromInputsToCmdParams(sanitizedInputs, a)165 cmdParams, err := cmdparams.FromInputsToCmdParams(sanitizedInputs, a)
169 if err != nil {166 if err != nil {
170 return sendError(c, err)167 return sendError(c, err)
@@ -229,6 +226,21 @@ func CreateContainerPOST(c echo.Context, a *server.App) error {
229 log.Info("Skipping proxy setup as requested", "container_id", containerID, "container_name", containerName)226 log.Info("Skipping proxy setup as requested", "container_id", containerID, "container_name", containerName)
230 }227 }
231 228
232- // Redirect to the container list page229+ // Prepare success message payload
233- return c.Redirect(http.StatusSeeOther, fmt.Sprintf("%s/containers", a.Config.Admin.Path))230+ successPayload := map[string]string{
231+ "level": "success",
232+ "message": fmt.Sprintf("Container '%s' created successfully.", containerName),
233+ }
234+ jsonPayload, err := json.Marshal(successPayload)
235+ if err != nil {
236+ // Log the error, but proceed with redirect as container creation was likely successful
237+ log.Error("Failed to marshal success payload for HX-Trigger", "error", err)
238+ } else {
239+ c.Response().Header().Set("HX-Trigger", fmt.Sprintf(`{"showMessage": %s}`, string(jsonPayload)))
240+ }
241+
242+ // Render a success message fragment instead of redirecting
243+ renderer := render.NewTemplRenderer(a)
244+ successMsg := fmt.Sprintf("Container '%s' created successfully.", containerName)
245+ return renderer.RenderTempl(c, templcomponents.Success(successMsg)) // Use the correct Success component
234 }246 }
M internal/httpserve/handlers/container_management.go +101 -5
@@ -224,12 +224,108 @@ func ImageManagerPrune(c echo.Context, a *server.App) error {
224224 lastPruneResult.mutex.Unlock()
225225 }()
226226
227- // Immediately return 202 Accepted to the client
228- c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML) // Set appropriate content type if needed for HTMX
227+ // Immediately return a placeholder that initiates polling
228+ // Note: We need to modify imagelist.templ to handle this response properly
229+ // For now, just return 202 Accepted and indicate work started.
230+ // The actual polling trigger will be added in the template.
229231 c.Response().WriteHeader(http.StatusAccepted)
230- // Optionally, return a message or updated component indicating the process has started
231- // For now, just return a simple message in the response body
232- return c.String(http.StatusAccepted, "Image pruning started in the background.")
232+ // We'll return a small snippet that the template swap can use
233+ // This snippet should include the polling mechanism itself.
234+ // Example (needs refinement in the template):
235+ return c.HTML(http.StatusAccepted, `<div id="prune-status-poller" hx-get="/htmx/image-manager/prune-status" hx-trigger="load, every 3s" hx-target="#prune-status-poller" hx-swap="outerHTML">Pruning images in background... Checking status.</div>`)
236+}
237+
238+// ImageManagerPruneStatus checks the status of a background prune operation
239+func ImageManagerPruneStatus(c echo.Context, a *server.App) error {
240+ lastPruneResult.mutex.Lock()
241+ defer lastPruneResult.mutex.Unlock()
242+
243+ // If prune is not done, return an empty response or keep the poller active
244+ if !lastPruneResult.Done {
245+ // Returning 204 No Content will stop polling if using hx-swap="none"
246+ // However, our poller replaces itself, so we just return the same polling div
247+ // or an updated status message within it.
248+ // Let's keep the existing poller HTML but maybe update the text slightly.
249+ return c.HTML(http.StatusOK, `<div id="prune-status-poller" hx-get="/htmx/image-manager/prune-status" hx-trigger="every 3s" hx-target="#prune-status-poller" hx-swap="outerHTML">Still pruning... Checking status.</div>`)
250+ }
251+
252+ // Prune is done, prepare the final response
253+ logger.Info("Prune complete, preparing final response for poller.")
254+
255+ // Prepare JSON payload for HX-Trigger toast message
256+ var level string
257+ if lastPruneResult.Success {
258+ level = "success"
259+ } else {
260+ level = "error"
261+ }
262+ payload := map[string]string{"level": level, "message": lastPruneResult.Message}
263+ jsonPayload, marshalErr := json.Marshal(payload)
264+ if marshalErr != nil {
265+ logger.Error("Failed to marshal prune result payload for poller", "error", marshalErr)
266+ // Handle marshalling error - maybe return an error component
267+ } else {
268+ c.Response().Header().Set("HX-Trigger", fmt.Sprintf(`{"showMessage": %s}`, string(jsonPayload)))
269+ }
270+
271+ // Reset the flag *after* preparing the response
272+ lastPruneResult.Done = false
273+ message := lastPruneResult.Message // Store message before resetting if needed
274+ success := lastPruneResult.Success
275+ // Reset message/success if needed, or maybe they are only relevant for the toast
276+ // lastPruneResult.Message = ""
277+ // lastPruneResult.Success = false
278+
279+ // Fetch the updated image list (copy logic from ImageManagerComponent)
280+ images, listErr := docker.ListContainerImages()
281+ if listErr != nil {
282+ logger.Error("Failed to list images after prune for poller", "error", listErr)
283+ // Return an error FRAGMENT instead of a full page.
284+ // HX-Trigger for the prune status itself was already set.
285+ pruneStatusMsg := "Prune finished but failed to refresh list."
286+ if !success { // Add prune status detail if it also failed
287+ pruneStatusMsg = fmt.Sprintf("Prune status: %s. Failed to refresh list.", message)
288+ }
289+ return c.HTML(http.StatusOK, fmt.Sprintf("<div class='alert alert-error'>%s Error: %v. Please refresh manually.</div>", pruneStatusMsg, listErr))
290+ }
291+
292+ var humanReadableImages []components.HumanReadableImage
293+ for _, img := range images {
294+ shortID := img.ID[7:19]
295+ safelyInteractWithIDMap(Update, shortID, img.ID)
296+ createdStr := humanize.TimeAgo(time.Unix(img.Created, 0))
297+ sizeStr := humanize.BytesToReadableSize(img.Size)
298+ var repository, tag string
299+ repoTag := "<none>:<none>"
300+ if len(img.RepoTags) > 0 {
301+ repoTag = img.RepoTags[0]
302+ parts := strings.Split(repoTag, ":")
303+ if len(parts) == 2 {
304+ repository = parts[0]
305+ tag = parts[1]
306+ } else {
307+ repository = repoTag
308+ tag = "latest"
309+ }
310+ }
311+ humanReadableImages = append(humanReadableImages, components.HumanReadableImage{
312+ ID: img.ID,
313+ ShortID: shortID,
314+ Created: createdStr,
315+ Size: sizeStr,
316+ Name: repoTag,
317+ RepoDigests: img.RepoDigests,
318+ RepoTags: img.RepoTags,
319+ Repository: repository,
320+ Tag: tag,
321+ })
322+ }
323+
324+ // Render the final ImageList component to replace the poller
325+ renderer := render.NewTemplRenderer(a)
326+ component := components.ImageList(humanReadableImages)
327+ logger.Debug("Rendering final ImageList for poller")
328+ return renderer.RenderTempl(c, component)
233329 }
234330
235331 // ContainerManagerComponent handles the /container-manager route
@@ -224,12 +224,108 @@ func ImageManagerPrune(c echo.Context, a *server.App) error {
224 lastPruneResult.mutex.Unlock()224 lastPruneResult.mutex.Unlock()
225 }()225 }()
226 226
227- // Immediately return 202 Accepted to the client227+ // Immediately return a placeholder that initiates polling
228- c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML) // Set appropriate content type if needed for HTMX228+ // Note: We need to modify imagelist.templ to handle this response properly
229+ // For now, just return 202 Accepted and indicate work started.
230+ // The actual polling trigger will be added in the template.
229 c.Response().WriteHeader(http.StatusAccepted)231 c.Response().WriteHeader(http.StatusAccepted)
230- // Optionally, return a message or updated component indicating the process has started232+ // We'll return a small snippet that the template swap can use
231- // For now, just return a simple message in the response body233+ // This snippet should include the polling mechanism itself.
232- return c.String(http.StatusAccepted, "Image pruning started in the background.")234+ // Example (needs refinement in the template):
235+ return c.HTML(http.StatusAccepted, `<div id="prune-status-poller" hx-get="/htmx/image-manager/prune-status" hx-trigger="load, every 3s" hx-target="#prune-status-poller" hx-swap="outerHTML">Pruning images in background... Checking status.</div>`)
236+}
237+
238+// ImageManagerPruneStatus checks the status of a background prune operation
239+func ImageManagerPruneStatus(c echo.Context, a *server.App) error {
240+ lastPruneResult.mutex.Lock()
241+ defer lastPruneResult.mutex.Unlock()
242+
243+ // If prune is not done, return an empty response or keep the poller active
244+ if !lastPruneResult.Done {
245+ // Returning 204 No Content will stop polling if using hx-swap="none"
246+ // However, our poller replaces itself, so we just return the same polling div
247+ // or an updated status message within it.
248+ // Let's keep the existing poller HTML but maybe update the text slightly.
249+ return c.HTML(http.StatusOK, `<div id="prune-status-poller" hx-get="/htmx/image-manager/prune-status" hx-trigger="every 3s" hx-target="#prune-status-poller" hx-swap="outerHTML">Still pruning... Checking status.</div>`)
250+ }
251+
252+ // Prune is done, prepare the final response
253+ logger.Info("Prune complete, preparing final response for poller.")
254+
255+ // Prepare JSON payload for HX-Trigger toast message
256+ var level string
257+ if lastPruneResult.Success {
258+ level = "success"
259+ } else {
260+ level = "error"
261+ }
262+ payload := map[string]string{"level": level, "message": lastPruneResult.Message}
263+ jsonPayload, marshalErr := json.Marshal(payload)
264+ if marshalErr != nil {
265+ logger.Error("Failed to marshal prune result payload for poller", "error", marshalErr)
266+ // Handle marshalling error - maybe return an error component
267+ } else {
268+ c.Response().Header().Set("HX-Trigger", fmt.Sprintf(`{"showMessage": %s}`, string(jsonPayload)))
269+ }
270+
271+ // Reset the flag *after* preparing the response
272+ lastPruneResult.Done = false
273+ message := lastPruneResult.Message // Store message before resetting if needed
274+ success := lastPruneResult.Success
275+ // Reset message/success if needed, or maybe they are only relevant for the toast
276+ // lastPruneResult.Message = ""
277+ // lastPruneResult.Success = false
278+
279+ // Fetch the updated image list (copy logic from ImageManagerComponent)
280+ images, listErr := docker.ListContainerImages()
281+ if listErr != nil {
282+ logger.Error("Failed to list images after prune for poller", "error", listErr)
283+ // Return an error FRAGMENT instead of a full page.
284+ // HX-Trigger for the prune status itself was already set.
285+ pruneStatusMsg := "Prune finished but failed to refresh list."
286+ if !success { // Add prune status detail if it also failed
287+ pruneStatusMsg = fmt.Sprintf("Prune status: %s. Failed to refresh list.", message)
288+ }
289+ return c.HTML(http.StatusOK, fmt.Sprintf("<div class='alert alert-error'>%s Error: %v. Please refresh manually.</div>", pruneStatusMsg, listErr))
290+ }
291+
292+ var humanReadableImages []components.HumanReadableImage
293+ for _, img := range images {
294+ shortID := img.ID[7:19]
295+ safelyInteractWithIDMap(Update, shortID, img.ID)
296+ createdStr := humanize.TimeAgo(time.Unix(img.Created, 0))
297+ sizeStr := humanize.BytesToReadableSize(img.Size)
298+ var repository, tag string
299+ repoTag := "<none>:<none>"
300+ if len(img.RepoTags) > 0 {
301+ repoTag = img.RepoTags[0]
302+ parts := strings.Split(repoTag, ":")
303+ if len(parts) == 2 {
304+ repository = parts[0]
305+ tag = parts[1]
306+ } else {
307+ repository = repoTag
308+ tag = "latest"
309+ }
310+ }
311+ humanReadableImages = append(humanReadableImages, components.HumanReadableImage{
312+ ID: img.ID,
313+ ShortID: shortID,
314+ Created: createdStr,
315+ Size: sizeStr,
316+ Name: repoTag,
317+ RepoDigests: img.RepoDigests,
318+ RepoTags: img.RepoTags,
319+ Repository: repository,
320+ Tag: tag,
321+ })
322+ }
323+
324+ // Render the final ImageList component to replace the poller
325+ renderer := render.NewTemplRenderer(a)
326+ component := components.ImageList(humanReadableImages)
327+ logger.Debug("Rendering final ImageList for poller")
328+ return renderer.RenderTempl(c, component)
233 }329 }
234 330
235 // ContainerManagerComponent handles the /container-manager route331 // ContainerManagerComponent handles the /container-manager route
M internal/httpserve/handlers/container_transactions.go +9 -0
@@ -24,6 +24,15 @@ func generateOrderedYAML(infoMap map[string]interface{}) (string, error) {
2424 continue
2525 }
2626
27+ // Special handling for empty Ports and Volumes maps
28+ if key == "Ports" || key == "Volumes" {
29+ if mapVal, ok := value.(map[string]string); ok && len(mapVal) == 0 {
30+ yamlString += key + ": []\n" // Output as empty list instead of map
31+ continue // Skip normal marshalling for this key
32+ }
33+ }
34+
35+ // Default marshalling for other keys or non-empty maps
2736 yamlBytes, err := yaml.Marshal(map[string]interface{}{key: value})
2837 if err != nil {
2938 return "", err
@@ -24,6 +24,15 @@ func generateOrderedYAML(infoMap map[string]interface{}) (string, error) {
24 continue24 continue
25 }25 }
26 26
27+ // Special handling for empty Ports and Volumes maps
28+ if key == "Ports" || key == "Volumes" {
29+ if mapVal, ok := value.(map[string]string); ok && len(mapVal) == 0 {
30+ yamlString += key + ": []\n" // Output as empty list instead of map
31+ continue // Skip normal marshalling for this key
32+ }
33+ }
34+
35+ // Default marshalling for other keys or non-empty maps
27 yamlBytes, err := yaml.Marshal(map[string]interface{}{key: value})36 yamlBytes, err := yaml.Marshal(map[string]interface{}{key: value})
28 if err != nil {37 if err != nil {
29 return "", err38 return "", err
M internal/httpserve/handlers/login.go +4 -4
@@ -81,12 +81,12 @@ func StartOAuthGithub(c echo.Context, a *server.App) error {
8181 return fmt.Errorf("could not extend session expiration: %w", err)
8282 }
8383
84- // Explicitly mark the session as online since we've validated it
85- logger.Info("Marking existing session as online", "sessionID", sessionID)
84+ // Explicitly mark the session as active since we've validated it
85+ logger.Info("Marking existing session as active", "sessionID", sessionID)
8686 err = queries.MarkSessionActive(a.DB, sessionID)
8787 if err != nil {
88- logger.Error("Failed to mark session as online", "error", err, "sessionID", sessionID)
89- return fmt.Errorf("failed to mark session online: %w", err)
88+ logger.Error("Failed to mark session as active", "error", err, "sessionID", sessionID)
89+ return fmt.Errorf("failed to mark session active: %w", err)
9090 }
9191
9292 logger.Info("Session is valid and extended. Redirecting to admin panel")
@@ -81,12 +81,12 @@ func StartOAuthGithub(c echo.Context, a *server.App) error {
81 return fmt.Errorf("could not extend session expiration: %w", err)81 return fmt.Errorf("could not extend session expiration: %w", err)
82 }82 }
83 83
84- // Explicitly mark the session as online since we've validated it84+ // Explicitly mark the session as active since we've validated it
85- logger.Info("Marking existing session as online", "sessionID", sessionID)85+ logger.Info("Marking existing session as active", "sessionID", sessionID)
86 err = queries.MarkSessionActive(a.DB, sessionID)86 err = queries.MarkSessionActive(a.DB, sessionID)
87 if err != nil {87 if err != nil {
88- logger.Error("Failed to mark session as online", "error", err, "sessionID", sessionID)88+ logger.Error("Failed to mark session as active", "error", err, "sessionID", sessionID)
89- return fmt.Errorf("failed to mark session online: %w", err)89+ return fmt.Errorf("failed to mark session active: %w", err)
90 }90 }
91 91
92 logger.Info("Session is valid and extended. Redirecting to admin panel")92 logger.Info("Session is valid and extended. Redirecting to admin panel")
M internal/proxy/core.go +6 -0
@@ -218,6 +218,12 @@ func (p *Proxy) Close() {
218218
219219 // requestDomainCertificate requests a certificate for a domain
220220 func (p *Proxy) requestDomainCertificate(domainName string) error {
221+ // If certificate acquisition is globally skipped, do nothing.
222+ if p.config.SkipCertificates {
223+ logger.Debug("Skipping certificate request because SkipCertificates is true", "domain", domainName)
224+ return nil
225+ }
226+
221227 logger.Debug("Requesting certificate for domain", "domain", domainName)
222228
223229 // Check if we're already processing this domain
@@ -218,6 +218,12 @@ func (p *Proxy) Close() {
218 218
219 // requestDomainCertificate requests a certificate for a domain219 // requestDomainCertificate requests a certificate for a domain
220 func (p *Proxy) requestDomainCertificate(domainName string) error {220 func (p *Proxy) requestDomainCertificate(domainName string) error {
221+ // If certificate acquisition is globally skipped, do nothing.
222+ if p.config.SkipCertificates {
223+ logger.Debug("Skipping certificate request because SkipCertificates is true", "domain", domainName)
224+ return nil
225+ }
226+
221 logger.Debug("Requesting certificate for domain", "domain", domainName)227 logger.Debug("Requesting certificate for domain", "domain", domainName)
222 228
223 // Check if we're already processing this domain229 // Check if we're already processing this domain
M internal/proxy/middleware.go +15 -16
@@ -1,7 +1,6 @@
11 package proxy
22
33 import (
4- "fmt"
54 "net"
65 "net/http"
76 "strings"
@@ -114,7 +113,7 @@ func (p *Proxy) setupMiddleware() {
114113 }
115114
116115 // Add middleware to log incoming headers (for debugging Cloudflare detection)
117- p.httpsServer.Use(logHeadersMiddleware())
116+ // p.httpsServer.Use(logHeadersMiddleware())
118117
119118 // --- Rate Limiting Setup (Domain Only Now) ---
120119 if p.config.EnableRateLimit {
@@ -250,17 +249,17 @@ func (p *Proxy) createRequestIDMiddleware() echo.MiddlewareFunc {
250249 }
251250
252251 // logHeadersMiddleware creates a middleware function to log request headers
253-func logHeadersMiddleware() echo.MiddlewareFunc {
254- return func(next echo.HandlerFunc) echo.HandlerFunc {
255- return func(c echo.Context) error {
256- // Log all headers at DEBUG level
257- headerStrings := []string{}
258- for k, v := range c.Request().Header {
259- headerStrings = append(headerStrings, fmt.Sprintf("%s: %s", k, strings.Join(v, ",")))
260- }
261- logger.Debug("Incoming Request Headers", "request_id", c.Get(RequestIDKey), "headers", strings.Join(headerStrings, " | "))
262-
263- return next(c)
264- }
265- }
266-}
252+// func logHeadersMiddleware() echo.MiddlewareFunc {
253+// return func(next echo.HandlerFunc) echo.HandlerFunc {
254+// return func(c echo.Context) error {
255+// // Log all headers at DEBUG level
256+// headerStrings := []string{}
257+// for k, v := range c.Request().Header {
258+// headerStrings = append(headerStrings, fmt.Sprintf("%s: %s", k, strings.Join(v, ",")))
259+// }
260+// logger.Debug("Incoming Request Headers", "request_id", c.Get(RequestIDKey), "headers", strings.Join(headerStrings, " | "))
261+
262+// return next(c)
263+// }
264+// }
265+// }
@@ -1,7 +1,6 @@
1 package proxy1 package proxy
2 2
3 import (3 import (
4- "fmt"
5 "net"4 "net"
6 "net/http"5 "net/http"
7 "strings"6 "strings"
@@ -114,7 +113,7 @@ func (p *Proxy) setupMiddleware() {
114 }113 }
115 114
116 // Add middleware to log incoming headers (for debugging Cloudflare detection)115 // Add middleware to log incoming headers (for debugging Cloudflare detection)
117- p.httpsServer.Use(logHeadersMiddleware())116+ // p.httpsServer.Use(logHeadersMiddleware())
118 117
119 // --- Rate Limiting Setup (Domain Only Now) ---118 // --- Rate Limiting Setup (Domain Only Now) ---
120 if p.config.EnableRateLimit {119 if p.config.EnableRateLimit {
@@ -250,17 +249,17 @@ func (p *Proxy) createRequestIDMiddleware() echo.MiddlewareFunc {
250 }249 }
251 250
252 // logHeadersMiddleware creates a middleware function to log request headers251 // logHeadersMiddleware creates a middleware function to log request headers
253-func logHeadersMiddleware() echo.MiddlewareFunc {252+// func logHeadersMiddleware() echo.MiddlewareFunc {
254- return func(next echo.HandlerFunc) echo.HandlerFunc {253+// return func(next echo.HandlerFunc) echo.HandlerFunc {
255- return func(c echo.Context) error {254+// return func(c echo.Context) error {
256- // Log all headers at DEBUG level255+// // Log all headers at DEBUG level
257- headerStrings := []string{}256+// headerStrings := []string{}
258- for k, v := range c.Request().Header {257+// for k, v := range c.Request().Header {
259- headerStrings = append(headerStrings, fmt.Sprintf("%s: %s", k, strings.Join(v, ",")))258+// headerStrings = append(headerStrings, fmt.Sprintf("%s: %s", k, strings.Join(v, ",")))
260- }259+// }
261- logger.Debug("Incoming Request Headers", "request_id", c.Get(RequestIDKey), "headers", strings.Join(headerStrings, " | "))260+// logger.Debug("Incoming Request Headers", "request_id", c.Get(RequestIDKey), "headers", strings.Join(headerStrings, " | "))
262-261+
263- return next(c)262+// return next(c)
264- }263+// }
265- }264+// }
266-}265+// }
M internal/proxy/routes.go +38 -4
@@ -1196,19 +1196,53 @@ func (p *Proxy) StartContainerEventListener() error {
11961196 } else {
11971197 // Even if IP is the same, make sure the route is active
11981198 if !route.Active {
1199- logger.Info("Reactivating route for restarted container",
1199+ logger.Info("Attempting to reactivate route for restarted container",
12001200 "container_id", containerID,
12011201 "container_name", containerName,
12021202 "domain", domain)
12031203
1204- // Just reuse ForceUpdateRouteIP with the same IP to activate the route
1205- p.ForceUpdateRouteIP(domain, containerIP)
1204+ // --- Add Health Check Before Activation ---
1205+ target := net.JoinHostPort(containerIP, route.ContainerPort)
1206+ maxRetries := 5
1207+ retryDelay := 2 * time.Second
1208+ healthy := false
1209+ for i := 0; i < maxRetries; i++ {
1210+ conn, err := net.DialTimeout("tcp", target, 1*time.Second)
1211+ if err == nil {
1212+ conn.Close()
1213+ healthy = true
1214+ logger.Info("Container health check successful", "target", target, "attempt", i+1)
1215+ break
1216+ }
1217+ logger.Debug("Container health check failed, retrying...",
1218+ "target", target,
1219+ "attempt", i+1,
1220+ "error", err)
1221+ time.Sleep(retryDelay)
1222+ }
1223+ // --- End Health Check ---
1224+
1225+ if healthy {
1226+ logger.Info("Container is healthy, proceeding with route activation", "domain", domain)
1227+ // Just reuse ForceUpdateRouteIP with the same IP to activate the route
1228+ err := p.ForceUpdateRouteIP(domain, containerIP)
1229+ if err != nil {
1230+ logger.Error("Failed to activate route after health check",
1231+ "domain", domain,
1232+ "error", err)
1233+ }
1234+ } else {
1235+ logger.Warn("Container did not become healthy after retries, route remains inactive",
1236+ "domain", domain,
1237+ "target", target)
1238+ // Route remains inactive, periodic check might pick it up later
1239+ }
12061240 }
12071241 }
12081242 }
12091243 }
12101244
1211- // Call the standard recreation handler for additional checks
1245+ // Call the standard recreation handler for additional checks (might add the route if missing)
12121246 p.HandleContainerRecreation(containerID, containerName, containerIP)
12131247 }()
12141248 }
@@ -1196,19 +1196,53 @@ func (p *Proxy) StartContainerEventListener() error {
1196 } else {1196 } else {
1197 // Even if IP is the same, make sure the route is active1197 // Even if IP is the same, make sure the route is active
1198 if !route.Active {1198 if !route.Active {
1199- logger.Info("Reactivating route for restarted container",1199+ logger.Info("Attempting to reactivate route for restarted container",
1200 "container_id", containerID,1200 "container_id", containerID,
1201 "container_name", containerName,1201 "container_name", containerName,
1202 "domain", domain)1202 "domain", domain)
1203 1203
1204- // Just reuse ForceUpdateRouteIP with the same IP to activate the route1204+ // --- Add Health Check Before Activation ---
1205- p.ForceUpdateRouteIP(domain, containerIP)1205+ target := net.JoinHostPort(containerIP, route.ContainerPort)
1206+ maxRetries := 5
1207+ retryDelay := 2 * time.Second
1208+ healthy := false
1209+ for i := 0; i < maxRetries; i++ {
1210+ conn, err := net.DialTimeout("tcp", target, 1*time.Second)
1211+ if err == nil {
1212+ conn.Close()
1213+ healthy = true
1214+ logger.Info("Container health check successful", "target", target, "attempt", i+1)
1215+ break
1216+ }
1217+ logger.Debug("Container health check failed, retrying...",
1218+ "target", target,
1219+ "attempt", i+1,
1220+ "error", err)
1221+ time.Sleep(retryDelay)
1222+ }
1223+ // --- End Health Check ---
1224+
1225+ if healthy {
1226+ logger.Info("Container is healthy, proceeding with route activation", "domain", domain)
1227+ // Just reuse ForceUpdateRouteIP with the same IP to activate the route
1228+ err := p.ForceUpdateRouteIP(domain, containerIP)
1229+ if err != nil {
1230+ logger.Error("Failed to activate route after health check",
1231+ "domain", domain,
1232+ "error", err)
1233+ }
1234+ } else {
1235+ logger.Warn("Container did not become healthy after retries, route remains inactive",
1236+ "domain", domain,
1237+ "target", target)
1238+ // Route remains inactive, periodic check might pick it up later
1239+ }
1206 }1240 }
1207 }1241 }
1208 }1242 }
1209 }1243 }
1210 1244
1211- // Call the standard recreation handler for additional checks1245+ // Call the standard recreation handler for additional checks (might add the route if missing)
1212 p.HandleContainerRecreation(containerID, containerName, containerIP)1246 p.HandleContainerRecreation(containerID, containerName, containerIP)
1213 }()1247 }()
1214 }1248 }
M internal/templating/cmdparams/from_inputs.go +21 -2
@@ -23,6 +23,9 @@ func FromInputsToCmdParams(inputs map[string]string, a *server.App) (docker.Cont
2323 }
2424 }
2525
26+ // Retrieve proxy port from the correct input key
27+ proxyPortValue := inputs["container_port"] // Changed from proxy_port
28+
2629 params := docker.ContainerCommandParams{
2730 IsSSL: inputs["container_protocol"] == "https",
2831 ContainerName: inputs["container_name"],
@@ -31,14 +34,30 @@ func FromInputsToCmdParams(inputs map[string]string, a *server.App) (docker.Cont
3134 ImageName: inputs["image_name"],
3235 ImageID: inputs["image_id"],
3336 Restart: inputs["restart"],
34- ProxyPort: inputs["proxy_port"],
37+ ProxyPort: proxyPortValue, // Assign the retrieved value
3538 Volumes: volumeSlice,
3639 Environment: environmentSlice,
3740 Network: a.Config.ContainerEngine.Network,
3841 PortMappings: portMappings,
42+ // Labels will be populated below
43+ }
44+
45+ // Initialize Labels slice if nil
46+ if params.Labels == nil {
47+ params.Labels = []string{}
3948 }
4049
41- err = SetupProxyRoute(&params, params.ProxyPort, a)
50+ // Add standard labels and the proxy port label
51+ params.Labels = append(params.Labels,
52+ fmt.Sprintf("gordon.managed=true"),
53+ fmt.Sprintf("gordon.domain=%s.%s", params.ServiceName, params.Domain),
54+ fmt.Sprintf("gordon.proxy.ssl=%t", params.IsSSL),
55+ fmt.Sprintf("gordon.proxy.port=%s", proxyPortValue), // Add the proxy port label
56+ )
57+
58+ // SetupProxyRoute might need adjustment if it relies on params.ProxyPort directly
59+ // Assuming SetupProxyRoute uses the passed proxyPortValue or reads labels
60+ err = SetupProxyRoute(&params, proxyPortValue, a) // Pass the correct port value
4261 if err != nil {
4362 return docker.ContainerCommandParams{}, fmt.Errorf("error setting up proxy route: %w", err)
4463 }
@@ -23,6 +23,9 @@ func FromInputsToCmdParams(inputs map[string]string, a *server.App) (docker.Cont
23 }23 }
24 }24 }
25 25
26+ // Retrieve proxy port from the correct input key
27+ proxyPortValue := inputs["container_port"] // Changed from proxy_port
28+
26 params := docker.ContainerCommandParams{29 params := docker.ContainerCommandParams{
27 IsSSL: inputs["container_protocol"] == "https",30 IsSSL: inputs["container_protocol"] == "https",
28 ContainerName: inputs["container_name"],31 ContainerName: inputs["container_name"],
@@ -31,14 +34,30 @@ func FromInputsToCmdParams(inputs map[string]string, a *server.App) (docker.Cont
31 ImageName: inputs["image_name"],34 ImageName: inputs["image_name"],
32 ImageID: inputs["image_id"],35 ImageID: inputs["image_id"],
33 Restart: inputs["restart"],36 Restart: inputs["restart"],
34- ProxyPort: inputs["proxy_port"],37+ ProxyPort: proxyPortValue, // Assign the retrieved value
35 Volumes: volumeSlice,38 Volumes: volumeSlice,
36 Environment: environmentSlice,39 Environment: environmentSlice,
37 Network: a.Config.ContainerEngine.Network,40 Network: a.Config.ContainerEngine.Network,
38 PortMappings: portMappings,41 PortMappings: portMappings,
42+ // Labels will be populated below
43+ }
44+
45+ // Initialize Labels slice if nil
46+ if params.Labels == nil {
47+ params.Labels = []string{}
39 }48 }
40 49
41- err = SetupProxyRoute(&params, params.ProxyPort, a)50+ // Add standard labels and the proxy port label
51+ params.Labels = append(params.Labels,
52+ fmt.Sprintf("gordon.managed=true"),
53+ fmt.Sprintf("gordon.domain=%s.%s", params.ServiceName, params.Domain),
54+ fmt.Sprintf("gordon.proxy.ssl=%t", params.IsSSL),
55+ fmt.Sprintf("gordon.proxy.port=%s", proxyPortValue), // Add the proxy port label
56+ )
57+
58+ // SetupProxyRoute might need adjustment if it relies on params.ProxyPort directly
59+ // Assuming SetupProxyRoute uses the passed proxyPortValue or reads labels
60+ err = SetupProxyRoute(&params, proxyPortValue, a) // Pass the correct port value
42 if err != nil {61 if err != nil {
43 return docker.ContainerCommandParams{}, fmt.Errorf("error setting up proxy route: %w", err)62 return docker.ContainerCommandParams{}, fmt.Errorf("error setting up proxy route: %w", err)
44 }63 }
M internal/templating/models/templ/components/containerlist.templ +3 -3
@@ -1,14 +1,14 @@
11 package components
22
33 import (
4- "github.com/docker/docker/api/types"
4+ "github.com/docker/docker/api/types/container"
55 "strconv"
66 )
77
88 // ContainerList displays a list of containers
9-templ ContainerList(containers []types.Container, noContainer bool) {
9+templ ContainerList(containers []container.Summary, noContainer bool) {
1010 <!-- Container list using daisyUI components -->
11- <div class="card w-full bg-base-300">
11+ <div class="card w-full bg-base-100">
1212 <div class="card-body p-4">
1313
1414 <!-- Action buttons -->
@@ -1,14 +1,14 @@
1 package components1 package components
2 2
3 import (3 import (
4- "github.com/docker/docker/api/types"4+ "github.com/docker/docker/api/types/container"
5 "strconv"5 "strconv"
6 )6 )
7 7
8 // ContainerList displays a list of containers8 // ContainerList displays a list of containers
9-templ ContainerList(containers []types.Container, noContainer bool) {9+templ ContainerList(containers []container.Summary, noContainer bool) {
10 <!-- Container list using daisyUI components -->10 <!-- Container list using daisyUI components -->
11- <div class="card w-full bg-base-300">11+ <div class="card w-full bg-base-100">
12 <div class="card-body p-4">12 <div class="card-body p-4">
13 13
14 <!-- Action buttons -->14 <!-- Action buttons -->
M internal/templating/models/templ/components/containerlist_templ.go +3 -3 generated file: collapsed
M internal/templating/models/templ/components/createcontainer.templ +2 -1
@@ -21,7 +21,7 @@ type ContainerFormData struct {
2121 templ CreateContainerForm(data ContainerFormData) {
2222 <div class="flex flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4 flex-grow">
2323 <!-- Left Side: Docker Run Options -->
24- <div class="flex-grow card p-6">
24+ <div class="flex-grow card p-6 bg-base-100">
2525 <h2 class="card-title pb-4">Deploy a container based on { data.ImageName }</h2>
2626 if data.ErrorMessage != "" {
2727 <div class="alert alert-error">
@@ -36,6 +36,7 @@ templ CreateContainerForm(data ContainerFormData) {
3636 hx-swap="innerHTML"
3737 hx-target={ "#create-form-target-" + data.ShortID }>
3838 <!-- Image Name -->
39+ <input type="hidden" name="image_id" value={ data.ImageID } />
3940 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 pb-4">
4041 <div class="md:col-span-1">
4142 <label class="label">
@@ -21,7 +21,7 @@ type ContainerFormData struct {
21 templ CreateContainerForm(data ContainerFormData) {21 templ CreateContainerForm(data ContainerFormData) {
22 <div class="flex flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4 flex-grow">22 <div class="flex flex-col md:flex-row space-y-4 md:space-y-0 md:space-x-4 flex-grow">
23 <!-- Left Side: Docker Run Options -->23 <!-- Left Side: Docker Run Options -->
24- <div class="flex-grow card p-6">24+ <div class="flex-grow card p-6 bg-base-100">
25 <h2 class="card-title pb-4">Deploy a container based on { data.ImageName }</h2>25 <h2 class="card-title pb-4">Deploy a container based on { data.ImageName }</h2>
26 if data.ErrorMessage != "" {26 if data.ErrorMessage != "" {
27 <div class="alert alert-error">27 <div class="alert alert-error">
@@ -36,6 +36,7 @@ templ CreateContainerForm(data ContainerFormData) {
36 hx-swap="innerHTML" 36 hx-swap="innerHTML"
37 hx-target={ "#create-form-target-" + data.ShortID }>37 hx-target={ "#create-form-target-" + data.ShortID }>
38 <!-- Image Name -->38 <!-- Image Name -->
39+ <input type="hidden" name="image_id" value={ data.ImageID } />
39 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 pb-4">40 <div class="grid grid-cols-1 md:grid-cols-3 gap-4 pb-4">
40 <div class="md:col-span-1">41 <div class="md:col-span-1">
41 <label class="label">42 <label class="label">
M internal/templating/models/templ/components/createcontainer_templ.go +42 -29 generated file: collapsed
M internal/templating/models/templ/components/imagelist.templ +1 -1
@@ -21,7 +21,7 @@ type HumanReadableImage struct {
2121 // ImageList displays a list of images
2222 templ ImageList(images []HumanReadableImage) {
2323 <!-- Image list using daisyUI components -->
24- <div class="card w-full bg-base-300">
24+ <div class="card w-full bg-base-100">
2525 <div class="card-body p-4">
2626
2727 <!-- Action buttons -->
@@ -21,7 +21,7 @@ type HumanReadableImage struct {
21 // ImageList displays a list of images21 // ImageList displays a list of images
22 templ ImageList(images []HumanReadableImage) {22 templ ImageList(images []HumanReadableImage) {
23 <!-- Image list using daisyUI components -->23 <!-- Image list using daisyUI components -->
24- <div class="card w-full bg-base-300">24+ <div class="card w-full bg-base-100">
25 <div class="card-body p-4">25 <div class="card-body p-4">
26 26
27 <!-- Action buttons -->27 <!-- Action buttons -->
M internal/templating/models/templ/components/imagelist_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/components/navbar.templ +1 -1
@@ -3,7 +3,7 @@ package components
33 // Navbar is a menu component for navigation
44 templ Navbar(buildVersion string, adminPath string, userSettingsURL string, logoutURL string) {
55 <!-- DaisyUI Navbar -->
6- <div class="navbar bg-base-200 shadow-lg fixed top-0 z-50">
6+ <div class="navbar bg-base-100 shadow-lg fixed top-0 z-50">
77 <div class="navbar-start">
88 <div class="flex items-center">
99 <h1 class="gordon-title text-2xl md:text-3xl text-primary tracking-tighter px-4">
@@ -3,7 +3,7 @@ package components
3 // Navbar is a menu component for navigation3 // Navbar is a menu component for navigation
4 templ Navbar(buildVersion string, adminPath string, userSettingsURL string, logoutURL string) {4 templ Navbar(buildVersion string, adminPath string, userSettingsURL string, logoutURL string) {
5 <!-- DaisyUI Navbar -->5 <!-- DaisyUI Navbar -->
6- <div class="navbar bg-base-200 shadow-lg fixed top-0 z-50">6+ <div class="navbar bg-base-100 shadow-lg fixed top-0 z-50">
7 <div class="navbar-start">7 <div class="navbar-start">
8 <div class="flex items-center">8 <div class="flex items-center">
9 <h1 class="gordon-title text-2xl md:text-3xl text-primary tracking-tighter px-4">9 <h1 class="gordon-title text-2xl md:text-3xl text-primary tracking-tighter px-4">
M internal/templating/models/templ/components/navbar_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/components/success.templ +1 -1
@@ -4,7 +4,7 @@ package components
44 templ Success(message string) {
55 <div
66 id="success"
7- class="flex text-indigo-600 content-center justify-center items-center w-full h-full">
7+ class="flex text-success content-center justify-center items-center w-full h-full">
88 <p class="text-2xl text-center">
99 if message != "" {
1010 { message }
@@ -4,7 +4,7 @@ package components
4 templ Success(message string) {4 templ Success(message string) {
5 <div5 <div
6 id="success"6 id="success"
7- class="flex text-indigo-600 content-center justify-center items-center w-full h-full">7+ class="flex text-success content-center justify-center items-center w-full h-full">
8 <p class="text-2xl text-center">8 <p class="text-2xl text-center">
9 if message != "" {9 if message != "" {
10 { message }10 { message }
M internal/templating/models/templ/components/success_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/layouts/admin_layout.templ +1 -1
@@ -7,7 +7,7 @@ templ AdminLayout(title string, buildVersion string, adminPath string, userSetti
77 <!DOCTYPE html>
88 <html lang="en" data-theme="gordon-dark">
99 @components.Header(title)
10- <body class="min-h-screen bg-base-100">
10+ <body class="min-h-screen bg-base-250">
1111 @components.Navbar(buildVersion, adminPath, userSettingsURL, logoutURL)
1212
1313 <!-- Main content starts after navbar height -->
@@ -7,7 +7,7 @@ templ AdminLayout(title string, buildVersion string, adminPath string, userSetti
7 <!DOCTYPE html>7 <!DOCTYPE html>
8 <html lang="en" data-theme="gordon-dark">8 <html lang="en" data-theme="gordon-dark">
9 @components.Header(title)9 @components.Header(title)
10- <body class="min-h-screen bg-base-100">10+ <body class="min-h-screen bg-base-250">
11 @components.Navbar(buildVersion, adminPath, userSettingsURL, logoutURL)11 @components.Navbar(buildVersion, adminPath, userSettingsURL, logoutURL)
12 12
13 <!-- Main content starts after navbar height -->13 <!-- Main content starts after navbar height -->
M internal/templating/models/templ/layouts/admin_layout_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/layouts/base.templ +1 -1
@@ -8,7 +8,7 @@ templ Base(title string) {
88 <!DOCTYPE html>
99 <html lang="en">
1010 @components.Header(title)
11- <body class="min-h-screen bg-base-100">
11+ <body class="min-h-screen bg-base-200">
1212 { children... }
1313 @components.Footer()
1414 </body>
@@ -8,7 +8,7 @@ templ Base(title string) {
8 <!DOCTYPE html>8 <!DOCTYPE html>
9 <html lang="en">9 <html lang="en">
10 @components.Header(title)10 @components.Header(title)
11- <body class="min-h-screen bg-base-100">11+ <body class="min-h-screen bg-base-200">
12 { children... }12 { children... }
13 @components.Footer()13 @components.Footer()
14 </body>14 </body>
M internal/templating/models/templ/layouts/base_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/pages/admin/install.templ +1 -1
@@ -13,7 +13,7 @@ templ InstallPage(title string, version string) {
1313 >
1414 <div class="circle-shadow flex justify-center w-100">
1515 <img
16- src="/assets/imgs/gordon-mascot-hq-trsp.png"
16+ src="/assets/imgs/gordon-mascot-mq-trsp.png"
1717 alt="logo"
1818 class="sm:h-24 h-32 xl:h-48"
1919 />
@@ -13,7 +13,7 @@ templ InstallPage(title string, version string) {
13 >13 >
14 <div class="circle-shadow flex justify-center w-100">14 <div class="circle-shadow flex justify-center w-100">
15 <img15 <img
16- src="/assets/imgs/gordon-mascot-hq-trsp.png"16+ src="/assets/imgs/gordon-mascot-mq-trsp.png"
17 alt="logo"17 alt="logo"
18 class="sm:h-24 h-32 xl:h-48"18 class="sm:h-24 h-32 xl:h-48"
19 />19 />
M internal/templating/models/templ/pages/admin/install_templ.go +1 -1 generated file: collapsed
M internal/templating/models/templ/pages/admin/manager.templ +2 -2
@@ -17,7 +17,7 @@ templ ManagerPage(title string, buildVersion string, adminPath string, userSetti
1717 </div>
1818
1919 <!-- Stats overview -->
20- <div class="stats shadow mb-6 w-full bg-base-300">
20+ <div class="stats shadow mb-6 w-full bg-base-100">
2121 <div class="stat">
2222 <div class="stat-figure text-primary">
2323 <span class="iconf text-3xl">󰡨</span>
@@ -38,7 +38,7 @@ templ ManagerPage(title string, buildVersion string, adminPath string, userSetti
3838 </div>
3939
4040 <!-- Tabs for containers and images -->
41- <div role="tablist" class="tabs tabs-boxed mb-4">
41+ <div role="tablist" class="tabs tabs-border mb-4">
4242 <input type="radio" name="my_tabs" role="tab" class="tab" aria-label="Containers" id="containers-tab" checked />
4343 <div role="tabpanel" class="tab-content p-0 bg-base-300">
4444 <!-- Container manager section -->
@@ -17,7 +17,7 @@ templ ManagerPage(title string, buildVersion string, adminPath string, userSetti
17 </div>17 </div>
18 18
19 <!-- Stats overview -->19 <!-- Stats overview -->
20- <div class="stats shadow mb-6 w-full bg-base-300">20+ <div class="stats shadow mb-6 w-full bg-base-100">
21 <div class="stat">21 <div class="stat">
22 <div class="stat-figure text-primary">22 <div class="stat-figure text-primary">
23 <span class="iconf text-3xl">󰡨</span>23 <span class="iconf text-3xl">󰡨</span>
@@ -38,7 +38,7 @@ templ ManagerPage(title string, buildVersion string, adminPath string, userSetti
38 </div>38 </div>
39 39
40 <!-- Tabs for containers and images -->40 <!-- Tabs for containers and images -->
41- <div role="tablist" class="tabs tabs-boxed mb-4">41+ <div role="tablist" class="tabs tabs-border mb-4">
42 <input type="radio" name="my_tabs" role="tab" class="tab" aria-label="Containers" id="containers-tab" checked />42 <input type="radio" name="my_tabs" role="tab" class="tab" aria-label="Containers" id="containers-tab" checked />
43 <div role="tabpanel" class="tab-content p-0 bg-base-300">43 <div role="tabpanel" class="tab-content p-0 bg-base-300">
44 <!-- Container manager section -->44 <!-- Container manager section -->
M internal/templating/models/templ/pages/admin/manager_templ.go +2 -2 generated file: collapsed
M internal/templating/models/templ/pages/errors/errors.templ +2 -5
@@ -16,13 +16,10 @@ templ NotFoundPage(data ErrorPageData) {
1616 @layouts.Base(data.Title) {
1717 <div class="flex flex-col items-center justify-center min-h-screen p-4">
1818 <div class="flex flex-col items-center mb-8">
19- <img src="/assets/imgs/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />
19+ <img src="/assets/imgs/gordon-mascot-mq-trsp.png" alt="Gordon Mascot" class="w-64 mb-4" />
2020 <h1 class="text-4xl font-bold text-error">404</h1>
2121 <h2 class="text-2xl mb-2">Page Not Found</h2>
2222 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>
23- <a href={ templ.URL(data.AdminPath) } class="btn btn-primary">
24- <span class="iconf mr-2">🏠</span> Go Home
25- </a>
2623 </div>
2724 </div>
2825 }
@@ -33,7 +30,7 @@ templ ForbiddenPage(data ErrorPageData) {
3330 @layouts.Base(data.Title) {
3431 <div class="flex flex-col items-center justify-center min-h-screen p-4">
3532 <div class="flex flex-col items-center mb-8">
36- <img src="/assets/imgs/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />
33+ <img src="/assets/imgs/gordon-mascot-mq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />
3734 <h1 class="text-4xl font-bold text-error">403</h1>
3835 <h2 class="text-2xl mb-2">Access Forbidden</h2>
3936 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>
@@ -16,13 +16,10 @@ templ NotFoundPage(data ErrorPageData) {
16 @layouts.Base(data.Title) {16 @layouts.Base(data.Title) {
17 <div class="flex flex-col items-center justify-center min-h-screen p-4">17 <div class="flex flex-col items-center justify-center min-h-screen p-4">
18 <div class="flex flex-col items-center mb-8">18 <div class="flex flex-col items-center mb-8">
19- <img src="/assets/imgs/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />19+ <img src="/assets/imgs/gordon-mascot-mq-trsp.png" alt="Gordon Mascot" class="w-64 mb-4" />
20 <h1 class="text-4xl font-bold text-error">404</h1>20 <h1 class="text-4xl font-bold text-error">404</h1>
21 <h2 class="text-2xl mb-2">Page Not Found</h2>21 <h2 class="text-2xl mb-2">Page Not Found</h2>
22 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>22 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>
23- <a href={ templ.URL(data.AdminPath) } class="btn btn-primary">
24- <span class="iconf mr-2">🏠</span> Go Home
25- </a>
26 </div>23 </div>
27 </div>24 </div>
28 }25 }
@@ -33,7 +30,7 @@ templ ForbiddenPage(data ErrorPageData) {
33 @layouts.Base(data.Title) {30 @layouts.Base(data.Title) {
34 <div class="flex flex-col items-center justify-center min-h-screen p-4">31 <div class="flex flex-col items-center justify-center min-h-screen p-4">
35 <div class="flex flex-col items-center mb-8">32 <div class="flex flex-col items-center mb-8">
36- <img src="/assets/imgs/gordon-mascot-hq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />33+ <img src="/assets/imgs/gordon-mascot-mq-trsp.png" alt="Gordon Mascot" class="w-64 h-64 mb-4" />
37 <h1 class="text-4xl font-bold text-error">403</h1>34 <h1 class="text-4xl font-bold text-error">403</h1>
38 <h2 class="text-2xl mb-2">Access Forbidden</h2>35 <h2 class="text-2xl mb-2">Access Forbidden</h2>
39 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>36 <p class="text-center text-base-content opacity-70 max-w-md mb-8">{ data.Message }</p>
M internal/templating/models/templ/pages/errors/errors_templ.go +16 -25 generated file: collapsed
M internal/webui/public/assets/css/custom.css +22 -103
@@ -1,123 +1,42 @@
1-/**
2- * Path: internal/ui/public/assets/css/custom.css
3- *
4- * @format
5- */
6-
7-/* Embeded path : assets/css/cutsom.css */
8-
91 @import "tailwindcss";
10-@plugin "daisyui";
11-
12-/* Custom DaisyUI theme */
2+/* Custom DaisyUI theme - Defined in tailwind.config.js */
133 @plugin "daisyui/theme" {
144 name: "gordon-dark";
155 default: true;
166 prefersdark: true;
177 color-scheme: "dark";
18- --color-base-100: oklch(28% 0.091 267.935);
19- --color-base-200: oklch(20% 0.042 265.755);
20- --color-base-300: oklch(13% 0.028 261.692);
21- --color-base-content: oklch(93% 0.034 272.788);
22- --color-primary: oklch(87% 0 0);
23- --color-primary-content: oklch(14% 0 0);
24- --color-secondary: oklch(80% 0.105 251.813);
25- --color-secondary-content: oklch(28% 0.091 267.935);
26- --color-accent: oklch(80% 0.105 251.813);
27- --color-accent-content: oklch(28% 0.091 267.935);
28- --color-neutral: oklch(37% 0.034 259.733);
29- --color-neutral-content: oklch(98% 0.002 247.839);
8+ --color-base-100: oklch(14% 0 0);
9+ --color-base-200: oklch(21% 0.006 285.885);
10+ --color-base-250: oklch(21% 0.006 285.885);
11+ --color-base-300: oklch(26% 0 0);
12+ --color-base-content: oklch(97% 0.001 106.424);
13+ --color-primary: oklch(44% 0.043 257.281);
14+ --color-primary-content: oklch(98% 0.003 247.858);
15+ --color-secondary: oklch(66% 0.179 58.318);
16+ --color-secondary-content: oklch(98% 0.022 95.277);
17+ --color-accent: oklch(60% 0.118 184.704);
18+ --color-accent-content: oklch(98% 0.014 180.72);
19+ --color-neutral: oklch(42% 0.199 265.638);
20+ --color-neutral-content: oklch(98% 0.001 106.423);
3021 --color-info: oklch(68% 0.169 237.323);
3122 --color-info-content: oklch(97% 0.013 236.62);
32- --color-success: oklch(70% 0.14 182.503);
33- --color-success-content: oklch(98% 0.014 180.72);
34- --color-warning: oklch(76% 0.188 70.08);
35- --color-warning-content: oklch(98% 0.022 95.277);
23+ --color-success: oklch(69% 0.17 162.48);
24+ --color-success-content: oklch(97% 0.021 166.113);
25+ --color-warning: oklch(70% 0.213 47.604);
26+ --color-warning-content: oklch(98% 0.016 73.684);
3627 --color-error: oklch(64% 0.246 16.439);
3728 --color-error-content: oklch(96% 0.015 12.422);
38- --radius-selector: 0rem;
39- --radius-field: 0rem;
40- --radius-box: 0rem;
29+ --radius-selector: 1rem;
30+ --radius-field: 0.5rem;
31+ --radius-box: 1rem;
4132 --size-selector: 0.25rem;
42- --size-field: 0.25rem;
33+ --size-field: 0.21875rem;
4334 --border: 1px;
4435 --depth: 0;
4536 --noise: 0;
4637 }
4738
4839
49-/* Custom component classes */
50-@layer components {
51- /* Button styles */
52- .btn-primary {
53- @apply flex w-full justify-center border border-transparent bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2;
54- }
55-
56- .btn-secondary {
57- @apply flex w-full justify-center border border-secondary bg-secondary px-4 py-2 text-sm font-medium text-secondary-content hover:bg-secondary/90 focus:outline-none focus:ring-2 focus:ring-secondary focus:ring-offset-2;
58- }
59-
60- .btn-danger {
61- @apply flex w-full justify-center border border-transparent bg-red-600 px-4 py-2 text-sm font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2;
62- }
63-
64- /* Alert styles */
65- .alert-error {
66- @apply bg-red-50 p-4 dark:bg-red-900/20;
67- }
68-
69- .alert-error-icon {
70- @apply h-5 w-5 text-red-400;
71- }
72-
73- .alert-error-text {
74- @apply text-sm font-medium text-red-800 dark:text-red-300;
75- }
76-
77- .alert-success {
78- @apply bg-green-50 p-4 dark:bg-green-900/20;
79- }
80-
81- .alert-success-icon {
82- @apply h-5 w-5 text-green-400;
83- }
84-
85- .alert-success-text {
86- @apply text-sm font-medium text-green-800 dark:text-green-300;
87- }
88-
89- /* Card styles */
90- .card {
91- @apply bg-base-100 p-4 shadow mb-4;
92- }
93-
94- .card-header {
95- @apply text-lg font-semibold text-indigo-600 mb-2;
96- }
97-
98- /* Background styles */
99- .bg-app {
100- @apply bg-base-300;
101- }
102-
103- .bg-sidebar {
104- @apply bg-indigo-900;
105- }
106-
107- .bg-card {
108- @apply bg-base-100;
109- }
110-
111- /* Text styles */
112- .text-title {
113- @apply text-indigo-600 font-semibold;
114- }
115-
116- .text-subtitle {
117- @apply text-indigo-500;
118- }
119-}
120-
12140 /* Import IBM Plex Fonts */
12241 @font-face {
12342 font-family: "IBMPlexSans-Bold";
@@ -1,123 +1,42 @@
1-/**
2- * Path: internal/ui/public/assets/css/custom.css
3- *
4- * @format
5- */
6-
7-/* Embeded path : assets/css/cutsom.css */
8-
9 @import "tailwindcss";1 @import "tailwindcss";
10-@plugin "daisyui";2+/* Custom DaisyUI theme - Defined in tailwind.config.js */
11-
12-/* Custom DaisyUI theme */
13 @plugin "daisyui/theme" {3 @plugin "daisyui/theme" {
14 name: "gordon-dark";4 name: "gordon-dark";
15 default: true;5 default: true;
16 prefersdark: true;6 prefersdark: true;
17 color-scheme: "dark";7 color-scheme: "dark";
18- --color-base-100: oklch(28% 0.091 267.935);8+ --color-base-100: oklch(14% 0 0);
19- --color-base-200: oklch(20% 0.042 265.755);9+ --color-base-200: oklch(21% 0.006 285.885);
20- --color-base-300: oklch(13% 0.028 261.692);10+ --color-base-250: oklch(21% 0.006 285.885);
21- --color-base-content: oklch(93% 0.034 272.788);11+ --color-base-300: oklch(26% 0 0);
22- --color-primary: oklch(87% 0 0);12+ --color-base-content: oklch(97% 0.001 106.424);
23- --color-primary-content: oklch(14% 0 0);13+ --color-primary: oklch(44% 0.043 257.281);
24- --color-secondary: oklch(80% 0.105 251.813);14+ --color-primary-content: oklch(98% 0.003 247.858);
25- --color-secondary-content: oklch(28% 0.091 267.935);15+ --color-secondary: oklch(66% 0.179 58.318);
26- --color-accent: oklch(80% 0.105 251.813);16+ --color-secondary-content: oklch(98% 0.022 95.277);
27- --color-accent-content: oklch(28% 0.091 267.935);17+ --color-accent: oklch(60% 0.118 184.704);
28- --color-neutral: oklch(37% 0.034 259.733);18+ --color-accent-content: oklch(98% 0.014 180.72);
29- --color-neutral-content: oklch(98% 0.002 247.839);19+ --color-neutral: oklch(42% 0.199 265.638);
20+ --color-neutral-content: oklch(98% 0.001 106.423);
30 --color-info: oklch(68% 0.169 237.323);21 --color-info: oklch(68% 0.169 237.323);
31 --color-info-content: oklch(97% 0.013 236.62);22 --color-info-content: oklch(97% 0.013 236.62);
32- --color-success: oklch(70% 0.14 182.503);23+ --color-success: oklch(69% 0.17 162.48);
33- --color-success-content: oklch(98% 0.014 180.72);24+ --color-success-content: oklch(97% 0.021 166.113);
34- --color-warning: oklch(76% 0.188 70.08);25+ --color-warning: oklch(70% 0.213 47.604);
35- --color-warning-content: oklch(98% 0.022 95.277);26+ --color-warning-content: oklch(98% 0.016 73.684);
36 --color-error: oklch(64% 0.246 16.439);27 --color-error: oklch(64% 0.246 16.439);
37 --color-error-content: oklch(96% 0.015 12.422);28 --color-error-content: oklch(96% 0.015 12.422);
38- --radius-selector: 0rem;29+ --radius-selector: 1rem;
39- --radius-field: 0rem;30+ --radius-field: 0.5rem;
40- --radius-box: 0rem;31+ --radius-box: 1rem;
41 --size-selector: 0.25rem;32 --size-selector: 0.25rem;
42- --size-field: 0.25rem;33+ --size-field: 0.21875rem;
43 --border: 1px;34 --border: 1px;
44 --depth: 0;35 --depth: 0;
45 --noise: 0;36 --noise: 0;
46 }37 }
47 38
48 39
49-/* Custom component classes */
50-@layer components {
51- /* Button styles */
52- .btn-primary {
53- @apply flex w-full justify-center border border-transparent bg-indigo-600 px-4 py-2 text-sm font-medium text-white hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2;
54- }
55-
56- .btn-secondary {
57- @apply flex w-full justify-center border border-secondary bg-secondary px-4 py-2 text-sm font-medium text-secondary-content hover:bg-secondary/90 focus:outline-none focus:ring-2 focus:ring-secondary focus:ring-offset-2;
58- }
59-
60- .btn-danger {
61- @apply flex w-full justify-center border border-transparent bg-red-600 px-4 py-2 text-sm font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-red-500 focus:ring-offset-2;
62- }
63-
64- /* Alert styles */
65- .alert-error {
66- @apply bg-red-50 p-4 dark:bg-red-900/20;
67- }
68-
69- .alert-error-icon {
70- @apply h-5 w-5 text-red-400;
71- }
72-
73- .alert-error-text {
74- @apply text-sm font-medium text-red-800 dark:text-red-300;
75- }
76-
77- .alert-success {
78- @apply bg-green-50 p-4 dark:bg-green-900/20;
79- }
80-
81- .alert-success-icon {
82- @apply h-5 w-5 text-green-400;
83- }
84-
85- .alert-success-text {
86- @apply text-sm font-medium text-green-800 dark:text-green-300;
87- }
88-
89- /* Card styles */
90- .card {
91- @apply bg-base-100 p-4 shadow mb-4;
92- }
93-
94- .card-header {
95- @apply text-lg font-semibold text-indigo-600 mb-2;
96- }
97-
98- /* Background styles */
99- .bg-app {
100- @apply bg-base-300;
101- }
102-
103- .bg-sidebar {
104- @apply bg-indigo-900;
105- }
106-
107- .bg-card {
108- @apply bg-base-100;
109- }
110-
111- /* Text styles */
112- .text-title {
113- @apply text-indigo-600 font-semibold;
114- }
115-
116- .text-subtitle {
117- @apply text-indigo-500;
118- }
119-}
120-
121 /* Import IBM Plex Fonts */40 /* Import IBM Plex Fonts */
122 @font-face {41 @font-face {
123 font-family: "IBMPlexSans-Bold";42 font-family: "IBMPlexSans-Bold";
M internal/webui/public/assets/css/tailwind.css +474 -7547 large diff (8021 lines changed): collapsed
A node_modules/.bin/cssesc +1 -0 generated file: collapsed
A node_modules/.bin/glob +1 -0 generated file: collapsed
A node_modules/.bin/jiti +1 -0 generated file: collapsed
A node_modules/.bin/nanoid +1 -0 generated file: collapsed
A node_modules/.bin/node-which +1 -0 generated file: collapsed
A node_modules/.bin/prettier +1 -0 generated file: collapsed
A node_modules/.bin/resolve +1 -0 generated file: collapsed
A node_modules/.bin/sucrase +1 -0 generated file: collapsed
A node_modules/.bin/sucrase-node +1 -0 generated file: collapsed
A node_modules/.bin/tailwind +1 -0 generated file: collapsed
A node_modules/.bin/yaml +1 -0 generated file: collapsed
A node_modules/.svelte2tsx-language-server-files/svelte-native-jsx.d.ts +32 -0 generated file: collapsed
A node_modules/.svelte2tsx-language-server-files/svelte-shims-v4.d.ts +287 -0 generated file: collapsed
A node_modules/@alloc/quick-lru/index.d.ts +128 -0 generated file: collapsed
A node_modules/@alloc/quick-lru/index.js +263 -0 generated file: collapsed
A node_modules/@alloc/quick-lru/license +9 -0 generated file: collapsed
A node_modules/@alloc/quick-lru/package.json +43 -0 generated file: collapsed
A node_modules/@alloc/quick-lru/readme.md +139 -0 generated file: collapsed
A node_modules/@isaacs/cliui/README.md +143 -0 generated file: collapsed
A node_modules/@isaacs/cliui/build/index.cjs +317 -0 generated file: collapsed
A node_modules/@isaacs/cliui/build/index.d.cts +43 -0 generated file: collapsed
A node_modules/@isaacs/cliui/build/lib/index.js +302 -0 generated file: collapsed
A node_modules/@isaacs/cliui/index.mjs +14 -0 generated file: collapsed
A node_modules/@isaacs/cliui/package.json +86 -0 generated file: collapsed
A node_modules/@jridgewell/gen-mapping/LICENSE +19 -0 generated file: collapsed
A node_modules/@jridgewell/gen-mapping/README.md +227 -0 generated file: collapsed
A node_modules/@jridgewell/gen-mapping/package.json +76 -0 generated file: collapsed
A node_modules/@jridgewell/resolve-uri/LICENSE +19 -0 generated file: collapsed
A node_modules/@jridgewell/resolve-uri/README.md +40 -0 generated file: collapsed
A node_modules/@jridgewell/resolve-uri/package.json +69 -0 generated file: collapsed
A node_modules/@jridgewell/set-array/LICENSE +19 -0 generated file: collapsed
A node_modules/@jridgewell/set-array/README.md +37 -0 generated file: collapsed
A node_modules/@jridgewell/set-array/package.json +65 -0 generated file: collapsed
A node_modules/@jridgewell/sourcemap-codec/LICENSE +21 -0 generated file: collapsed
A node_modules/@jridgewell/sourcemap-codec/README.md +264 -0 generated file: collapsed
A node_modules/@jridgewell/sourcemap-codec/package.json +75 -0 generated file: collapsed
A node_modules/@jridgewell/trace-mapping/LICENSE +19 -0 generated file: collapsed
A node_modules/@jridgewell/trace-mapping/README.md +257 -0 generated file: collapsed
A node_modules/@jridgewell/trace-mapping/package.json +77 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/LICENSE +21 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/README.md +171 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/adapters/fs.d.ts +20 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/adapters/fs.js +19 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/constants.d.ts +4 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/constants.js +17 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/index.d.ts +12 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/index.js +26 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/async.d.ts +7 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/async.js +104 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/common.d.ts +1 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/common.js +13 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/sync.d.ts +5 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/providers/sync.js +54 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/settings.d.ts +20 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/settings.js +24 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/types/index.d.ts +20 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/types/index.js +2 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/utils/fs.d.ts +2 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/utils/fs.js +19 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/utils/index.d.ts +2 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/out/utils/index.js +5 -0 generated file: collapsed
A node_modules/@nodelib/fs.scandir/package.json +44 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/LICENSE +21 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/README.md +126 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/adapters/fs.d.ts +13 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/adapters/fs.js +17 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/index.d.ts +12 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/index.js +26 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/providers/async.d.ts +4 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/providers/async.js +36 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/providers/sync.d.ts +3 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/providers/sync.js +23 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/settings.d.ts +16 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/settings.js +16 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/types/index.d.ts +4 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/out/types/index.js +2 -0 generated file: collapsed
A node_modules/@nodelib/fs.stat/package.json +37 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/LICENSE +21 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/README.md +215 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/index.d.ts +14 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/index.js +34 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/async.d.ts +12 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/async.js +30 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/index.d.ts +4 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/index.js +9 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/stream.d.ts +12 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/stream.js +34 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/sync.d.ts +10 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/providers/sync.js +14 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/async.d.ts +30 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/async.js +97 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/common.d.ts +7 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/common.js +31 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/reader.d.ts +6 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/reader.js +11 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/sync.d.ts +15 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/readers/sync.js +59 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/settings.d.ts +30 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/settings.js +26 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/types/index.d.ts +8 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/out/types/index.js +2 -0 generated file: collapsed
A node_modules/@nodelib/fs.walk/package.json +44 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-glibc/LICENSE +21 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-glibc/README.md +1 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-glibc/package.json +33 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-glibc/watcher.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/@parcel/watcher-linux-x64-musl/LICENSE +21 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-musl/README.md +1 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-musl/package.json +33 -0 generated file: collapsed
A node_modules/@parcel/watcher-linux-x64-musl/watcher.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/@parcel/watcher/LICENSE +21 -0 generated file: collapsed
A node_modules/@parcel/watcher/README.md +135 -0 generated file: collapsed
A node_modules/@parcel/watcher/binding.gyp +93 -0 generated file: collapsed
A node_modules/@parcel/watcher/index.d.ts +49 -0 generated file: collapsed
A node_modules/@parcel/watcher/index.js +41 -0 generated file: collapsed
A node_modules/@parcel/watcher/index.js.flow +48 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/.bin/detect-libc +1 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/.npmignore +7 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/LICENSE +201 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/README.md +78 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/bin/detect-libc.js +18 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/lib/detect-libc.js +92 -0 generated file: collapsed
A node_modules/@parcel/watcher/node_modules/detect-libc/package.json +35 -0 generated file: collapsed
A node_modules/@parcel/watcher/package.json +88 -0 generated file: collapsed
A node_modules/@parcel/watcher/scripts/build-from-source.js +13 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Backend.cc +182 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Backend.hh +37 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Debounce.cc +113 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Debounce.hh +49 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/DirTree.cc +152 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/DirTree.hh +50 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Event.hh +109 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Glob.cc +22 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Glob.hh +34 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/PromiseRunner.hh +101 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Signal.hh +46 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Watcher.cc +237 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/Watcher.hh +73 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/binding.cc +268 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/kqueue/KqueueBackend.cc +306 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/kqueue/KqueueBackend.hh +35 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/linux/InotifyBackend.cc +232 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/linux/InotifyBackend.hh +34 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/macos/FSEventsBackend.cc +338 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/macos/FSEventsBackend.hh +20 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/shared/BruteForceBackend.cc +41 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/shared/BruteForceBackend.hh +25 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/unix/fts.cc +50 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/unix/legacy.cc +77 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/wasm/WasmBackend.cc +132 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/wasm/WasmBackend.hh +34 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/wasm/include.h +74 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/watchman/BSER.cc +302 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/watchman/BSER.hh +69 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/watchman/IPC.hh +175 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/watchman/WatchmanBackend.cc +338 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/watchman/WatchmanBackend.hh +35 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/windows/WindowsBackend.cc +282 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/windows/WindowsBackend.hh +18 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/windows/win_utils.cc +44 -0 generated file: collapsed
A node_modules/@parcel/watcher/src/windows/win_utils.hh +11 -0 generated file: collapsed
A node_modules/@parcel/watcher/wrapper.js +77 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/.editorconfig +14 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/CHANGELOG.md +147 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/LICENSE +201 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/README.md +413 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/is-default-value.js +25 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/limit-long-syntax.js +35 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/negate.js +43 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/no-repeated-options.js +31 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/ordered-options.mjs +41 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/examples/simple-hard-coded.js +26 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/index.js +396 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/internal/errors.js +47 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/internal/primordials.js +393 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/internal/util.js +14 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/internal/validators.js +89 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/package.json +36 -0 generated file: collapsed
A node_modules/@pkgjs/parseargs/utils.js +198 -0 generated file: collapsed
A node_modules/@tailwindcss/cli/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/cli/README.md +40 -0 generated file: collapsed
A node_modules/@tailwindcss/cli/package.json +41 -0 generated file: collapsed
A node_modules/@tailwindcss/node/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/node/README.md +40 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/.bin/jiti +1 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/README.md +235 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti-cli.mjs +34 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti-hooks.mjs +117 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti-native.mjs +121 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti-register.d.mts +1 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti-register.mjs +4 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti.cjs +23 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti.d.cts +8 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti.d.mts +8 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/jiti.mjs +22 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/lib/types.d.ts +260 -0 generated file: collapsed
A node_modules/@tailwindcss/node/node_modules/jiti/package.json +134 -0 generated file: collapsed
A node_modules/@tailwindcss/node/package.json +44 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-gnu/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-gnu/README.md +3 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-gnu/package.json +30 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-gnu/tailwindcss-oxide.linux-x64-gnu.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/@tailwindcss/oxide-linux-x64-musl/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-musl/README.md +3 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-musl/package.json +30 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide-linux-x64-musl/tailwindcss-oxide.linux-x64-musl.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/@tailwindcss/oxide/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide/index.d.ts +37 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide/index.js +315 -0 generated file: collapsed
A node_modules/@tailwindcss/oxide/package.json +63 -0 generated file: collapsed
A node_modules/@tailwindcss/postcss/LICENSE +21 -0 generated file: collapsed
A node_modules/@tailwindcss/postcss/README.md +40 -0 generated file: collapsed
A node_modules/@tailwindcss/postcss/package.json +47 -0 generated file: collapsed
A node_modules/ansi-regex/index.d.ts +33 -0 generated file: collapsed
A node_modules/ansi-regex/index.js +10 -0 generated file: collapsed
A node_modules/ansi-regex/license +9 -0 generated file: collapsed
A node_modules/ansi-regex/package.json +61 -0 generated file: collapsed
A node_modules/ansi-regex/readme.md +60 -0 generated file: collapsed
A node_modules/ansi-styles/index.d.ts +236 -0 generated file: collapsed
A node_modules/ansi-styles/index.js +223 -0 generated file: collapsed
A node_modules/ansi-styles/license +9 -0 generated file: collapsed
A node_modules/ansi-styles/package.json +54 -0 generated file: collapsed
A node_modules/ansi-styles/readme.md +173 -0 generated file: collapsed
A node_modules/any-promise/.jshintrc +4 -0 generated file: collapsed
A node_modules/any-promise/.npmignore +7 -0 generated file: collapsed
A node_modules/any-promise/LICENSE +19 -0 generated file: collapsed
A node_modules/any-promise/README.md +161 -0 generated file: collapsed
A node_modules/any-promise/implementation.d.ts +3 -0 generated file: collapsed
A node_modules/any-promise/implementation.js +1 -0 generated file: collapsed
A node_modules/any-promise/index.d.ts +73 -0 generated file: collapsed
A node_modules/any-promise/index.js +1 -0 generated file: collapsed
A node_modules/any-promise/loader.js +78 -0 generated file: collapsed
A node_modules/any-promise/optional.js +6 -0 generated file: collapsed
A node_modules/any-promise/package.json +45 -0 generated file: collapsed
A node_modules/any-promise/register-shim.js +18 -0 generated file: collapsed
A node_modules/any-promise/register.d.ts +17 -0 generated file: collapsed
A node_modules/any-promise/register.js +94 -0 generated file: collapsed
A node_modules/any-promise/register/bluebird.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/bluebird.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/es6-promise.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/es6-promise.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/lie.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/lie.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/native-promise-only.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/native-promise-only.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/pinkie.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/pinkie.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/promise.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/promise.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/q.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/q.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/rsvp.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/rsvp.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/vow.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/vow.js +2 -0 generated file: collapsed
A node_modules/any-promise/register/when.d.ts +1 -0 generated file: collapsed
A node_modules/any-promise/register/when.js +2 -0 generated file: collapsed
A node_modules/anymatch/LICENSE +15 -0 generated file: collapsed
A node_modules/anymatch/README.md +87 -0 generated file: collapsed
A node_modules/anymatch/index.d.ts +20 -0 generated file: collapsed
A node_modules/anymatch/index.js +104 -0 generated file: collapsed
A node_modules/anymatch/package.json +48 -0 generated file: collapsed
A node_modules/arg/LICENSE.md +21 -0 generated file: collapsed
A node_modules/arg/README.md +317 -0 generated file: collapsed
A node_modules/arg/index.d.ts +44 -0 generated file: collapsed
A node_modules/arg/index.js +195 -0 generated file: collapsed
A node_modules/arg/package.json +28 -0 collapsed to keep the page light
A node_modules/balanced-match/.github/FUNDING.yml +2 -0 collapsed to keep the page light
A node_modules/balanced-match/LICENSE.md +21 -0 collapsed to keep the page light
A node_modules/balanced-match/README.md +97 -0 collapsed to keep the page light
A node_modules/balanced-match/index.js +62 -0 collapsed to keep the page light
A node_modules/balanced-match/package.json +48 -0 collapsed to keep the page light
A node_modules/binary-extensions/binary-extensions.json +263 -0 collapsed to keep the page light
A node_modules/binary-extensions/binary-extensions.json.d.ts +3 -0 collapsed to keep the page light
A node_modules/binary-extensions/index.d.ts +14 -0 collapsed to keep the page light
A node_modules/binary-extensions/index.js +1 -0 collapsed to keep the page light
A node_modules/binary-extensions/license +10 -0 collapsed to keep the page light
A node_modules/binary-extensions/package.json +40 -0 collapsed to keep the page light
A node_modules/binary-extensions/readme.md +25 -0 collapsed to keep the page light
A node_modules/brace-expansion/.github/FUNDING.yml +2 -0 collapsed to keep the page light
A node_modules/brace-expansion/LICENSE +21 -0 collapsed to keep the page light
A node_modules/brace-expansion/README.md +135 -0 collapsed to keep the page light
A node_modules/brace-expansion/index.js +203 -0 collapsed to keep the page light
A node_modules/brace-expansion/package.json +46 -0 collapsed to keep the page light
A node_modules/braces/LICENSE +21 -0 collapsed to keep the page light
A node_modules/braces/README.md +586 -0 collapsed to keep the page light
A node_modules/braces/index.js +170 -0 collapsed to keep the page light
A node_modules/braces/lib/compile.js +60 -0 collapsed to keep the page light
A node_modules/braces/lib/constants.js +57 -0 collapsed to keep the page light
A node_modules/braces/lib/expand.js +113 -0 collapsed to keep the page light
A node_modules/braces/lib/parse.js +331 -0 collapsed to keep the page light
A node_modules/braces/lib/stringify.js +32 -0 collapsed to keep the page light
A node_modules/braces/lib/utils.js +122 -0 collapsed to keep the page light
A node_modules/braces/package.json +77 -0 collapsed to keep the page light
A node_modules/camelcase-css/README.md +27 -0 collapsed to keep the page light
A node_modules/camelcase-css/index-es5.js +24 -0 collapsed to keep the page light
A node_modules/camelcase-css/index.js +30 -0 collapsed to keep the page light
A node_modules/camelcase-css/license +21 -0 collapsed to keep the page light
A node_modules/camelcase-css/package.json +34 -0 collapsed to keep the page light
A node_modules/caniuse-lite/LICENSE +395 -0 collapsed to keep the page light
A node_modules/caniuse-lite/README.md +6 -0 collapsed to keep the page light
A node_modules/caniuse-lite/package.json +34 -0 collapsed to keep the page light
A node_modules/chokidar/LICENSE +21 -0 collapsed to keep the page light
A node_modules/chokidar/README.md +308 -0 collapsed to keep the page light
A node_modules/chokidar/index.js +973 -0 collapsed to keep the page light
A node_modules/chokidar/lib/constants.js +66 -0 collapsed to keep the page light
A node_modules/chokidar/lib/fsevents-handler.js +526 -0 collapsed to keep the page light
A node_modules/chokidar/lib/nodefs-handler.js +654 -0 collapsed to keep the page light
A node_modules/chokidar/node_modules/glob-parent/CHANGELOG.md +110 -0 collapsed to keep the page light
A node_modules/chokidar/node_modules/glob-parent/LICENSE +15 -0 collapsed to keep the page light
A node_modules/chokidar/node_modules/glob-parent/README.md +137 -0 collapsed to keep the page light
A node_modules/chokidar/node_modules/glob-parent/index.js +42 -0 collapsed to keep the page light
A node_modules/chokidar/node_modules/glob-parent/package.json +48 -0 collapsed to keep the page light
A node_modules/chokidar/package.json +70 -0 collapsed to keep the page light
A node_modules/chokidar/types/index.d.ts +192 -0 collapsed to keep the page light
A node_modules/color-convert/CHANGELOG.md +54 -0 collapsed to keep the page light
A node_modules/color-convert/LICENSE +21 -0 collapsed to keep the page light
A node_modules/color-convert/README.md +68 -0 collapsed to keep the page light
A node_modules/color-convert/conversions.js +839 -0 collapsed to keep the page light
A node_modules/color-convert/index.js +81 -0 collapsed to keep the page light
A node_modules/color-convert/package.json +48 -0 collapsed to keep the page light
A node_modules/color-convert/route.js +97 -0 collapsed to keep the page light
A node_modules/color-name/LICENSE +8 -0 collapsed to keep the page light
A node_modules/color-name/README.md +11 -0 collapsed to keep the page light
A node_modules/color-name/index.js +152 -0 collapsed to keep the page light
A node_modules/color-name/package.json +28 -0 collapsed to keep the page light
A node_modules/commander/CHANGELOG.md +436 -0 collapsed to keep the page light
A node_modules/commander/LICENSE +22 -0 collapsed to keep the page light
A node_modules/commander/Readme.md +713 -0 collapsed to keep the page light
A node_modules/commander/index.js +1649 -0 collapsed to keep the page light
A node_modules/commander/package.json +41 -0 collapsed to keep the page light
A node_modules/commander/typings/index.d.ts +311 -0 collapsed to keep the page light
A node_modules/cross-spawn/CHANGELOG.md +130 -0 collapsed to keep the page light
A node_modules/cross-spawn/LICENSE +21 -0 collapsed to keep the page light
A node_modules/cross-spawn/README.md +96 -0 collapsed to keep the page light
A node_modules/cross-spawn/index.js +39 -0 collapsed to keep the page light
A node_modules/cross-spawn/lib/enoent.js +59 -0 collapsed to keep the page light
A node_modules/cross-spawn/lib/parse.js +91 -0 collapsed to keep the page light
A node_modules/cross-spawn/lib/util/escape.js +45 -0 collapsed to keep the page light
A node_modules/cross-spawn/lib/util/readShebang.js +23 -0 collapsed to keep the page light
A node_modules/cross-spawn/lib/util/resolveCommand.js +52 -0 collapsed to keep the page light
A node_modules/cross-spawn/package.json +73 -0 collapsed to keep the page light
A node_modules/cssesc/README.md +201 -0 collapsed to keep the page light
A node_modules/cssesc/bin/cssesc +116 -0 collapsed to keep the page light
A node_modules/cssesc/cssesc.js +110 -0 collapsed to keep the page light
A node_modules/cssesc/man/cssesc.1 +70 -0 collapsed to keep the page light
A node_modules/cssesc/package.json +51 -0 collapsed to keep the page light
A node_modules/daisyui/LICENSE +21 -0 collapsed to keep the page light
A node_modules/daisyui/README.md +37 -0 collapsed to keep the page light
A node_modules/daisyui/base/properties.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/properties/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/properties/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/reset.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootcolor.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootcolor/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootcolor/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrollgutter.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrollgutter/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrollgutter/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrolllock.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrolllock/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/rootscrolllock/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/scrollbar.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/scrollbar/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/scrollbar/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/svg.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/base/svg/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/base/svg/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/chunks.css +73 -0 collapsed to keep the page light
A node_modules/daisyui/colors/properties-extended.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/colors/properties.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/colors/responsive-extended.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/colors/responsive.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/colors/states-extended.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/colors/states.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/alert.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/alert/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/alert/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/avatar.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/avatar/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/avatar/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/badge.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/badge/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/badge/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/breadcrumbs.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/breadcrumbs/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/breadcrumbs/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/button.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/button/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/button/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/calendar.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/calendar/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/calendar/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/card.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/card/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/card/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/carousel.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/carousel/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/carousel/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/chat.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/chat/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/chat/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/checkbox.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/checkbox/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/checkbox/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/collapse.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/collapse/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/collapse/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/countdown.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/countdown/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/countdown/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/diff.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/diff/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/diff/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/divider.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/divider/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/divider/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/dock.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/dock/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/dock/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/drawer.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/drawer/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/drawer/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/dropdown.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/dropdown/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/dropdown/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/fieldset.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/fieldset/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/fieldset/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/fileinput.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/fileinput/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/fileinput/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/filter.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/filter/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/filter/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/footer.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/footer/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/footer/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/hero.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/hero/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/hero/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/indicator.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/indicator/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/indicator/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/input.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/input/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/input/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/kbd.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/kbd/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/kbd/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/label.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/label/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/label/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/link.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/link/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/link/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/list.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/list/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/list/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/loading.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/loading/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/loading/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/mask.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/mask/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/mask/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/menu.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/menu/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/menu/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/mockup.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/mockup/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/mockup/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/modal.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/modal/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/modal/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/navbar.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/navbar/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/navbar/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/progress.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/progress/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/progress/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/radialprogress.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/radialprogress/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/radialprogress/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/radio.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/radio/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/radio/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/range.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/range/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/range/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/rating.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/rating/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/rating/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/select.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/select/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/select/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/skeleton.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/skeleton/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/skeleton/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/stack.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/stack/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/stack/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/stat.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/stat/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/stat/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/status.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/status/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/status/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/steps.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/steps/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/steps/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/swap.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/swap/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/swap/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/tab.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/tab/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/tab/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/table.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/table/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/table/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/textarea.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/textarea/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/textarea/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/timeline.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/timeline/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/timeline/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/toast.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/toast/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/toast/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/toggle.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/toggle/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/toggle/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/tooltip.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/tooltip/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/tooltip/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/validator.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/components/validator/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/components/validator/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/daisyui.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/functions/addPrefix.js +156 -0 collapsed to keep the page light
A node_modules/daisyui/functions/plugin.js +11 -0 collapsed to keep the page light
A node_modules/daisyui/functions/pluginOptionsHandler.js +86 -0 collapsed to keep the page light
A node_modules/daisyui/functions/themeOrder.js +37 -0 collapsed to keep the page light
A node_modules/daisyui/functions/variables.js +29 -0 collapsed to keep the page light
A node_modules/daisyui/imports.js +68 -0 collapsed to keep the page light
A node_modules/daisyui/index.js +51 -0 collapsed to keep the page light
A node_modules/daisyui/package.json +72 -0 collapsed to keep the page light
A node_modules/daisyui/theme/abyss.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/abyss/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/abyss/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/acid.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/acid/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/acid/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/aqua.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/aqua/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/aqua/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/autumn.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/autumn/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/autumn/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/black.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/black/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/black/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/bumblebee.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/bumblebee/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/bumblebee/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/business.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/business/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/business/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/caramellatte.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/caramellatte/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/caramellatte/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cmyk.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cmyk/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cmyk/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/coffee.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/coffee/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/coffee/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/corporate.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/corporate/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/corporate/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cupcake.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cupcake/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cupcake/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cyberpunk.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cyberpunk/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/cyberpunk/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dark.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dark/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dark/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dim.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dim/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dim/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dracula.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dracula/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/dracula/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/emerald.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/emerald/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/emerald/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/fantasy.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/fantasy/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/fantasy/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/forest.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/forest/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/forest/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/garden.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/garden/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/garden/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/halloween.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/halloween/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/halloween/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/index.js +48 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lemonade.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lemonade/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lemonade/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/light.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/light/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/light/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lofi.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lofi/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/lofi/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/luxury.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/luxury/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/luxury/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/night.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/night/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/night/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/nord.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/nord/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/nord/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/object.d.ts +74 -0 collapsed to keep the page light
A node_modules/daisyui/theme/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/pastel.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/pastel/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/pastel/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/retro.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/retro/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/retro/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/silk.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/silk/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/silk/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/sunset.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/sunset/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/sunset/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/synthwave.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/synthwave/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/synthwave/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/valentine.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/valentine/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/valentine/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/winter.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/winter/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/winter/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/theme/wireframe.css +31 -0 collapsed to keep the page light
A node_modules/daisyui/theme/wireframe/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/theme/wireframe/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/themes.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/glass.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/glass/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/glass/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/join.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/join/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/join/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/radius.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/radius/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/radius/object.js +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/typography.css +1 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/typography/index.js +7 -0 collapsed to keep the page light
A node_modules/daisyui/utilities/typography/object.js +1 -0 collapsed to keep the page light
A node_modules/detect-libc/LICENSE +201 -0 collapsed to keep the page light
A node_modules/detect-libc/README.md +163 -0 collapsed to keep the page light
A node_modules/detect-libc/index.d.ts +14 -0 collapsed to keep the page light
A node_modules/detect-libc/lib/detect-libc.js +267 -0 collapsed to keep the page light
A node_modules/detect-libc/lib/filesystem.js +41 -0 collapsed to keep the page light
A node_modules/detect-libc/lib/process.js +24 -0 collapsed to keep the page light
A node_modules/detect-libc/package.json +40 -0 collapsed to keep the page light
A node_modules/didyoumean/LICENSE +14 -0 collapsed to keep the page light
A node_modules/didyoumean/README.md +134 -0 collapsed to keep the page light
A node_modules/didyoumean/didYouMean-1.2.1.js +274 -0 collapsed to keep the page light
A node_modules/didyoumean/didYouMean-1.2.1.min.js +17 -0 collapsed to keep the page light
A node_modules/didyoumean/package.json +27 -0 collapsed to keep the page light
A node_modules/dlv/README.md +76 -0 collapsed to keep the page light
A node_modules/dlv/index.js +7 -0 collapsed to keep the page light
A node_modules/dlv/package.json +30 -0 collapsed to keep the page light
A node_modules/dotenv/CHANGELOG.md +488 -0 collapsed to keep the page light
A node_modules/dotenv/LICENSE +23 -0 collapsed to keep the page light
A node_modules/dotenv/README-es.md +448 -0 collapsed to keep the page light
A node_modules/dotenv/README.md +651 -0 collapsed to keep the page light
A node_modules/dotenv/config.d.ts +1 -0 collapsed to keep the page light
A node_modules/dotenv/config.js +9 -0 collapsed to keep the page light
A node_modules/dotenv/lib/cli-options.js +11 -0 collapsed to keep the page light
A node_modules/dotenv/lib/env-options.js +24 -0 collapsed to keep the page light
A node_modules/dotenv/lib/main.d.ts +153 -0 collapsed to keep the page light
A node_modules/dotenv/lib/main.js +361 -0 collapsed to keep the page light
A node_modules/dotenv/package.json +61 -0 collapsed to keep the page light
A node_modules/eastasianwidth/README.md +32 -0 collapsed to keep the page light
A node_modules/eastasianwidth/eastasianwidth.js +311 -0 collapsed to keep the page light
A node_modules/eastasianwidth/package.json +18 -0 collapsed to keep the page light
A node_modules/emoji-regex/README.md +137 -0 collapsed to keep the page light
A node_modules/emoji-regex/RGI_Emoji.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/RGI_Emoji.js +6 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/RGI_Emoji.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/RGI_Emoji.js +6 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/index.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/index.js +6 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/text.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/es2015/text.js +6 -0 collapsed to keep the page light
A node_modules/emoji-regex/index.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/index.js +6 -0 collapsed to keep the page light
A node_modules/emoji-regex/package.json +52 -0 collapsed to keep the page light
A node_modules/emoji-regex/text.d.ts +5 -0 collapsed to keep the page light
A node_modules/emoji-regex/text.js +6 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/LICENSE +20 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/README.md +183 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/AliasFieldPlugin.js +108 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/AliasPlugin.js +183 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/AppendPlugin.js +49 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/CachedInputFileSystem.js +664 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/CloneBasenamePlugin.js +53 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ConditionalPlugin.js +59 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js +98 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/DescriptionFileUtils.js +201 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/DirectoryExistsPlugin.js +63 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ExportsFieldPlugin.js +200 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ExtensionAliasPlugin.js +101 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/FileExistsPlugin.js +58 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ImportsFieldPlugin.js +223 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/JoinRequestPartPlugin.js +75 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/JoinRequestPlugin.js +45 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/LogInfoPlugin.js +54 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/MainFieldPlugin.js +90 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ModulesInHierachicDirectoriesPlugin.js +9 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ModulesInHierarchicalDirectoriesPlugin.js +87 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ModulesInRootPlugin.js +49 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/NextPlugin.js +33 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ParsePlugin.js +76 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/PnpPlugin.js +133 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/Resolver.js +800 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ResolverFactory.js +728 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/RestrictionsPlugin.js +70 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/ResultPlugin.js +42 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/RootsPlugin.js +69 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/SelfReferencePlugin.js +82 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/SymlinkPlugin.js +100 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/SyncAsyncFileSystemDecorator.js +220 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/TryNextPlugin.js +41 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js +112 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/UseFilePlugin.js +55 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/createInnerContext.js +46 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/forEachBail.js +50 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/getInnerRequest.js +36 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/getPaths.js +45 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/index.js +203 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/util/entrypoints.js +573 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/util/identifier.js +69 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/util/module-browser.js +8 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/util/path.js +203 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/lib/util/process-browser.js +22 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/package.json +72 -0 collapsed to keep the page light
A node_modules/enhanced-resolve/types.d.ts +1135 -0 collapsed to keep the page light
A node_modules/fast-glob/LICENSE +21 -0 collapsed to keep the page light
A node_modules/fast-glob/README.md +830 -0 collapsed to keep the page light
A node_modules/fast-glob/node_modules/glob-parent/CHANGELOG.md +110 -0 collapsed to keep the page light
A node_modules/fast-glob/node_modules/glob-parent/LICENSE +15 -0 collapsed to keep the page light
A node_modules/fast-glob/node_modules/glob-parent/README.md +137 -0 collapsed to keep the page light
A node_modules/fast-glob/node_modules/glob-parent/index.js +42 -0 collapsed to keep the page light
A node_modules/fast-glob/node_modules/glob-parent/package.json +48 -0 collapsed to keep the page light
A node_modules/fast-glob/out/index.d.ts +40 -0 collapsed to keep the page light
A node_modules/fast-glob/out/index.js +102 -0 collapsed to keep the page light
A node_modules/fast-glob/out/managers/tasks.d.ts +22 -0 collapsed to keep the page light
A node_modules/fast-glob/out/managers/tasks.js +110 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/async.d.ts +9 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/async.js +23 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/deep.d.ts +16 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/deep.js +62 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/entry.d.ts +16 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/entry.js +63 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/error.d.ts +8 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/filters/error.js +15 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/matchers/matcher.d.ts +33 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/matchers/matcher.js +45 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/matchers/partial.d.ts +4 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/matchers/partial.js +38 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/provider.d.ts +19 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/provider.js +48 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/stream.d.ts +11 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/stream.js +31 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/sync.d.ts +9 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/sync.js +23 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/transformers/entry.d.ts +8 -0 collapsed to keep the page light
A node_modules/fast-glob/out/providers/transformers/entry.js +26 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/async.d.ts +10 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/async.js +35 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/reader.d.ts +15 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/reader.js +33 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/stream.d.ts +14 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/stream.js +55 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/sync.d.ts +12 -0 collapsed to keep the page light
A node_modules/fast-glob/out/readers/sync.js +43 -0 collapsed to keep the page light
A node_modules/fast-glob/out/settings.d.ts +164 -0 collapsed to keep the page light
A node_modules/fast-glob/out/settings.js +59 -0 collapsed to keep the page light
A node_modules/fast-glob/out/types/index.d.ts +31 -0 collapsed to keep the page light
A node_modules/fast-glob/out/types/index.js +2 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/array.d.ts +2 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/array.js +22 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/errno.d.ts +2 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/errno.js +7 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/fs.d.ts +4 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/fs.js +19 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/index.d.ts +8 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/index.js +17 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/path.d.ts +13 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/path.js +68 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/pattern.d.ts +47 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/pattern.js +188 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/stream.d.ts +4 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/stream.js +17 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/string.d.ts +2 -0 collapsed to keep the page light
A node_modules/fast-glob/out/utils/string.js +11 -0 collapsed to keep the page light
A node_modules/fast-glob/package.json +81 -0 collapsed to keep the page light
A node_modules/fastq/.github/dependabot.yml +11 -0 collapsed to keep the page light
A node_modules/fastq/.github/workflows/ci.yml +75 -0 collapsed to keep the page light
A node_modules/fastq/LICENSE +13 -0 collapsed to keep the page light
A node_modules/fastq/README.md +306 -0 collapsed to keep the page light
A node_modules/fastq/bench.js +66 -0 collapsed to keep the page light
A node_modules/fastq/example.js +14 -0 collapsed to keep the page light
A node_modules/fastq/example.mjs +11 -0 collapsed to keep the page light
A node_modules/fastq/index.d.ts +38 -0 collapsed to keep the page light
A node_modules/fastq/package.json +53 -0 collapsed to keep the page light
A node_modules/fastq/queue.js +311 -0 collapsed to keep the page light
A node_modules/fastq/test/example.ts +83 -0 collapsed to keep the page light
A node_modules/fastq/test/promise.js +248 -0 collapsed to keep the page light
A node_modules/fastq/test/test.js +642 -0 collapsed to keep the page light
A node_modules/fastq/test/tsconfig.json +11 -0 collapsed to keep the page light
A node_modules/fill-range/LICENSE +21 -0 collapsed to keep the page light
A node_modules/fill-range/README.md +237 -0 collapsed to keep the page light
A node_modules/fill-range/index.js +248 -0 collapsed to keep the page light
A node_modules/fill-range/package.json +74 -0 collapsed to keep the page light
A node_modules/foreground-child/LICENSE +15 -0 collapsed to keep the page light
A node_modules/foreground-child/README.md +128 -0 collapsed to keep the page light
A node_modules/foreground-child/package.json +111 -0 collapsed to keep the page light
A node_modules/function-bind/.eslintrc +21 -0 collapsed to keep the page light
A node_modules/function-bind/.github/FUNDING.yml +12 -0 collapsed to keep the page light
A node_modules/function-bind/.github/SECURITY.md +3 -0 collapsed to keep the page light
A node_modules/function-bind/.nycrc +13 -0 collapsed to keep the page light
A node_modules/function-bind/CHANGELOG.md +136 -0 collapsed to keep the page light
A node_modules/function-bind/LICENSE +20 -0 collapsed to keep the page light
A node_modules/function-bind/README.md +46 -0 collapsed to keep the page light
A node_modules/function-bind/implementation.js +84 -0 collapsed to keep the page light
A node_modules/function-bind/index.js +5 -0 collapsed to keep the page light
A node_modules/function-bind/package.json +87 -0 collapsed to keep the page light
A node_modules/function-bind/test/.eslintrc +9 -0 collapsed to keep the page light
A node_modules/function-bind/test/index.js +252 -0 collapsed to keep the page light
A node_modules/glob-parent/LICENSE +15 -0 collapsed to keep the page light
A node_modules/glob-parent/README.md +134 -0 collapsed to keep the page light
A node_modules/glob-parent/index.js +75 -0 collapsed to keep the page light
A node_modules/glob-parent/package.json +54 -0 collapsed to keep the page light
A node_modules/glob/LICENSE +15 -0 collapsed to keep the page light
A node_modules/glob/README.md +1265 -0 collapsed to keep the page light
A node_modules/glob/package.json +99 -0 collapsed to keep the page light
A node_modules/graceful-fs/LICENSE +15 -0 collapsed to keep the page light
A node_modules/graceful-fs/README.md +143 -0 collapsed to keep the page light
A node_modules/graceful-fs/clone.js +23 -0 collapsed to keep the page light
A node_modules/graceful-fs/graceful-fs.js +448 -0 collapsed to keep the page light
A node_modules/graceful-fs/legacy-streams.js +118 -0 collapsed to keep the page light
A node_modules/graceful-fs/package.json +53 -0 collapsed to keep the page light
A node_modules/graceful-fs/polyfills.js +355 -0 collapsed to keep the page light
A node_modules/hasown/.eslintrc +5 -0 collapsed to keep the page light
A node_modules/hasown/.github/FUNDING.yml +12 -0 collapsed to keep the page light
A node_modules/hasown/.nycrc +13 -0 collapsed to keep the page light
A node_modules/hasown/CHANGELOG.md +40 -0 collapsed to keep the page light
A node_modules/hasown/LICENSE +21 -0 collapsed to keep the page light
A node_modules/hasown/README.md +40 -0 collapsed to keep the page light
A node_modules/hasown/index.d.ts +3 -0 collapsed to keep the page light
A node_modules/hasown/index.js +8 -0 collapsed to keep the page light
A node_modules/hasown/package.json +92 -0 collapsed to keep the page light
A node_modules/hasown/tsconfig.json +6 -0 collapsed to keep the page light
A node_modules/is-binary-path/index.d.ts +17 -0 collapsed to keep the page light
A node_modules/is-binary-path/index.js +7 -0 collapsed to keep the page light
A node_modules/is-binary-path/license +9 -0 collapsed to keep the page light
A node_modules/is-binary-path/package.json +40 -0 collapsed to keep the page light
A node_modules/is-binary-path/readme.md +34 -0 collapsed to keep the page light
A node_modules/is-core-module/.eslintrc +18 -0 collapsed to keep the page light
A node_modules/is-core-module/.nycrc +9 -0 collapsed to keep the page light
A node_modules/is-core-module/CHANGELOG.md +205 -0 collapsed to keep the page light
A node_modules/is-core-module/LICENSE +20 -0 collapsed to keep the page light
A node_modules/is-core-module/README.md +40 -0 collapsed to keep the page light
A node_modules/is-core-module/core.json +161 -0 collapsed to keep the page light
A node_modules/is-core-module/index.js +69 -0 collapsed to keep the page light
A node_modules/is-core-module/package.json +76 -0 collapsed to keep the page light
A node_modules/is-core-module/test/index.js +154 -0 collapsed to keep the page light
A node_modules/is-extglob/LICENSE +21 -0 collapsed to keep the page light
A node_modules/is-extglob/README.md +107 -0 collapsed to keep the page light
A node_modules/is-extglob/index.js +20 -0 collapsed to keep the page light
A node_modules/is-extglob/package.json +69 -0 collapsed to keep the page light
A node_modules/is-fullwidth-code-point/index.d.ts +17 -0 collapsed to keep the page light
A node_modules/is-fullwidth-code-point/index.js +50 -0 collapsed to keep the page light
A node_modules/is-fullwidth-code-point/license +9 -0 collapsed to keep the page light
A node_modules/is-fullwidth-code-point/package.json +42 -0 collapsed to keep the page light
A node_modules/is-fullwidth-code-point/readme.md +39 -0 collapsed to keep the page light
A node_modules/is-glob/LICENSE +21 -0 collapsed to keep the page light
A node_modules/is-glob/README.md +206 -0 collapsed to keep the page light
A node_modules/is-glob/index.js +150 -0 collapsed to keep the page light
A node_modules/is-glob/package.json +81 -0 collapsed to keep the page light
A node_modules/is-number/LICENSE +21 -0 collapsed to keep the page light
A node_modules/is-number/README.md +187 -0 collapsed to keep the page light
A node_modules/is-number/index.js +18 -0 collapsed to keep the page light
A node_modules/is-number/package.json +82 -0 collapsed to keep the page light
A node_modules/isexe/.npmignore +2 -0 collapsed to keep the page light
A node_modules/isexe/LICENSE +15 -0 collapsed to keep the page light
A node_modules/isexe/README.md +51 -0 collapsed to keep the page light
A node_modules/isexe/index.js +57 -0 collapsed to keep the page light
A node_modules/isexe/mode.js +41 -0 collapsed to keep the page light
A node_modules/isexe/package.json +31 -0 collapsed to keep the page light
A node_modules/isexe/test/basic.js +221 -0 collapsed to keep the page light
A node_modules/isexe/windows.js +42 -0 collapsed to keep the page light
A node_modules/jackspeak/LICENSE.md +55 -0 collapsed to keep the page light
A node_modules/jackspeak/README.md +357 -0 collapsed to keep the page light
A node_modules/jackspeak/package.json +95 -0 collapsed to keep the page light
A node_modules/jiti/LICENSE +21 -0 collapsed to keep the page light
A node_modules/jiti/README.md +235 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti-cli.mjs +34 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti-hooks.mjs +117 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti-native.mjs +121 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti-register.d.mts +1 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti-register.mjs +4 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti.cjs +23 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti.d.cts +8 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti.d.mts +8 -0 collapsed to keep the page light
A node_modules/jiti/lib/jiti.mjs +22 -0 collapsed to keep the page light
A node_modules/jiti/lib/types.d.ts +260 -0 collapsed to keep the page light
A node_modules/jiti/package.json +134 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-gnu/LICENSE +373 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-gnu/README.md +1 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-gnu/lightningcss.linux-x64-gnu.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/lightningcss-linux-x64-gnu/package.json +37 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-musl/LICENSE +373 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-musl/README.md +1 -0 collapsed to keep the page light
A node_modules/lightningcss-linux-x64-musl/lightningcss.linux-x64-musl.node +0 -0 binary file: no text diff

binary file: no text diff

A node_modules/lightningcss-linux-x64-musl/package.json +37 -0 collapsed to keep the page light
A node_modules/lightningcss/LICENSE +373 -0 collapsed to keep the page light
A node_modules/lightningcss/README.md +105 -0 collapsed to keep the page light
A node_modules/lightningcss/node/ast.d.ts +9716 -0 collapsed to keep the page light
A node_modules/lightningcss/node/ast.js.flow +10346 -0 collapsed to keep the page light
A node_modules/lightningcss/node/browserslistToTargets.js +48 -0 collapsed to keep the page light
A node_modules/lightningcss/node/composeVisitors.js +442 -0 collapsed to keep the page light
A node_modules/lightningcss/node/flags.js +28 -0 collapsed to keep the page light
A node_modules/lightningcss/node/index.d.ts +477 -0 collapsed to keep the page light
A node_modules/lightningcss/node/index.js +28 -0 collapsed to keep the page light
A node_modules/lightningcss/node/index.js.flow +824 -0 collapsed to keep the page light
A node_modules/lightningcss/node/index.mjs +4 -0 collapsed to keep the page light
A node_modules/lightningcss/node/targets.d.ts +40 -0 collapsed to keep the page light
A node_modules/lightningcss/node/targets.js.flow +39 -0 collapsed to keep the page light
A node_modules/lightningcss/package.json +109 -0 collapsed to keep the page light
A node_modules/lilconfig/LICENSE +21 -0 collapsed to keep the page light
A node_modules/lilconfig/package.json +42 -0 collapsed to keep the page light
A node_modules/lilconfig/readme.md +98 -0 collapsed to keep the page light
A node_modules/lilconfig/src/index.d.ts +54 -0 collapsed to keep the page light
A node_modules/lilconfig/src/index.js +460 -0 collapsed to keep the page light
A node_modules/lines-and-columns/LICENSE +21 -0 collapsed to keep the page light
A node_modules/lines-and-columns/README.md +33 -0 collapsed to keep the page light
A node_modules/lines-and-columns/build/index.d.ts +13 -0 collapsed to keep the page light
A node_modules/lines-and-columns/build/index.js +62 -0 collapsed to keep the page light
A node_modules/lines-and-columns/package.json +49 -0 collapsed to keep the page light
A node_modules/lru-cache/LICENSE +15 -0 collapsed to keep the page light
A node_modules/lru-cache/README.md +331 -0 collapsed to keep the page light
A node_modules/lru-cache/package.json +116 -0 collapsed to keep the page light
A node_modules/merge2/LICENSE +21 -0 collapsed to keep the page light
A node_modules/merge2/README.md +144 -0 collapsed to keep the page light
A node_modules/merge2/index.js +144 -0 collapsed to keep the page light
A node_modules/merge2/package.json +43 -0 collapsed to keep the page light
A node_modules/micromatch/LICENSE +21 -0 collapsed to keep the page light
A node_modules/micromatch/README.md +1024 -0 collapsed to keep the page light
A node_modules/micromatch/index.js +474 -0 collapsed to keep the page light
A node_modules/micromatch/package.json +119 -0 collapsed to keep the page light
A node_modules/minimatch/LICENSE +15 -0 collapsed to keep the page light
A node_modules/minimatch/README.md +454 -0 collapsed to keep the page light
A node_modules/minimatch/package.json +82 -0 collapsed to keep the page light
A node_modules/minipass/LICENSE +15 -0 collapsed to keep the page light
A node_modules/minipass/README.md +825 -0 collapsed to keep the page light
A node_modules/minipass/package.json +82 -0 collapsed to keep the page light
A node_modules/mri/index.d.ts +21 -0 collapsed to keep the page light
A node_modules/mri/lib/index.js +119 -0 collapsed to keep the page light
A node_modules/mri/lib/index.mjs +119 -0 collapsed to keep the page light
A node_modules/mri/license.md +21 -0 collapsed to keep the page light
A node_modules/mri/package.json +43 -0 collapsed to keep the page light
A node_modules/mri/readme.md +166 -0 collapsed to keep the page light
A node_modules/mz/HISTORY.md +66 -0 collapsed to keep the page light
A node_modules/mz/LICENSE +22 -0 collapsed to keep the page light
A node_modules/mz/README.md +106 -0 collapsed to keep the page light
A node_modules/mz/child_process.js +8 -0 collapsed to keep the page light
A node_modules/mz/crypto.js +9 -0 collapsed to keep the page light
A node_modules/mz/dns.js +16 -0 collapsed to keep the page light
A node_modules/mz/fs.js +62 -0 collapsed to keep the page light
A node_modules/mz/index.js +8 -0 collapsed to keep the page light
A node_modules/mz/package.json +44 -0 collapsed to keep the page light
A node_modules/mz/readline.js +64 -0 collapsed to keep the page light
A node_modules/mz/zlib.js +13 -0 collapsed to keep the page light
A node_modules/nanoid/LICENSE +20 -0 collapsed to keep the page light
A node_modules/nanoid/README.md +554 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.browser.cjs +69 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.browser.js +69 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.cjs +71 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.d.ts +56 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.js +71 -0 collapsed to keep the page light
A node_modules/nanoid/async/index.native.js +57 -0 collapsed to keep the page light
A node_modules/nanoid/async/package.json +12 -0 collapsed to keep the page light
A node_modules/nanoid/bin/nanoid.cjs +55 -0 collapsed to keep the page light
A node_modules/nanoid/index.browser.cjs +72 -0 collapsed to keep the page light
A node_modules/nanoid/index.browser.js +72 -0 collapsed to keep the page light
A node_modules/nanoid/index.cjs +85 -0 collapsed to keep the page light
A node_modules/nanoid/index.d.cts +91 -0 collapsed to keep the page light
A node_modules/nanoid/index.d.ts +91 -0 collapsed to keep the page light
A node_modules/nanoid/index.js +85 -0 collapsed to keep the page light
A node_modules/nanoid/nanoid.js +1 -0 collapsed to keep the page light
A node_modules/nanoid/non-secure/index.cjs +34 -0 collapsed to keep the page light
A node_modules/nanoid/non-secure/index.d.ts +33 -0 collapsed to keep the page light
A node_modules/nanoid/non-secure/index.js +34 -0 collapsed to keep the page light
A node_modules/nanoid/non-secure/package.json +6 -0 collapsed to keep the page light
A node_modules/nanoid/package.json +88 -0 collapsed to keep the page light
A node_modules/nanoid/url-alphabet/index.cjs +7 -0 collapsed to keep the page light
A node_modules/nanoid/url-alphabet/index.js +7 -0 collapsed to keep the page light
A node_modules/nanoid/url-alphabet/package.json +6 -0 collapsed to keep the page light
A node_modules/node-addon-api/LICENSE.md +9 -0 collapsed to keep the page light
A node_modules/node-addon-api/README.md +319 -0 collapsed to keep the page light
A node_modules/node-addon-api/common.gypi +20 -0 collapsed to keep the page light
A node_modules/node-addon-api/except.gypi +25 -0 collapsed to keep the page light
A node_modules/node-addon-api/index.js +12 -0 collapsed to keep the page light
A node_modules/node-addon-api/napi-inl.deprecated.h +186 -0 collapsed to keep the page light
A node_modules/node-addon-api/napi-inl.h +6607 -0 collapsed to keep the page light
A node_modules/node-addon-api/napi.h +3201 -0 collapsed to keep the page light
A node_modules/node-addon-api/node_addon_api.gyp +32 -0 collapsed to keep the page light
A node_modules/node-addon-api/node_api.gyp +9 -0 collapsed to keep the page light
A node_modules/node-addon-api/noexcept.gypi +26 -0 collapsed to keep the page light
A node_modules/node-addon-api/nothing.c +0 -0

no textual change.

A node_modules/node-addon-api/package-support.json +21 -0 collapsed to keep the page light
A node_modules/node-addon-api/package.json +480 -0 collapsed to keep the page light
A node_modules/node-addon-api/tools/README.md +73 -0 collapsed to keep the page light
A node_modules/node-addon-api/tools/check-napi.js +99 -0 collapsed to keep the page light
A node_modules/node-addon-api/tools/clang-format.js +71 -0 collapsed to keep the page light
A node_modules/node-addon-api/tools/conversion.js +301 -0 collapsed to keep the page light
A node_modules/node-addon-api/tools/eslint-format.js +79 -0 collapsed to keep the page light
A node_modules/normalize-path/LICENSE +21 -0 collapsed to keep the page light
A node_modules/normalize-path/README.md +127 -0 collapsed to keep the page light
A node_modules/normalize-path/index.js +35 -0 collapsed to keep the page light
A node_modules/normalize-path/package.json +77 -0 collapsed to keep the page light
A node_modules/object-assign/index.js +90 -0 collapsed to keep the page light
A node_modules/object-assign/license +21 -0 collapsed to keep the page light
A node_modules/object-assign/package.json +42 -0 collapsed to keep the page light
A node_modules/object-assign/readme.md +61 -0 collapsed to keep the page light
A node_modules/object-hash/LICENSE +22 -0 collapsed to keep the page light
A node_modules/object-hash/index.js +453 -0 collapsed to keep the page light
A node_modules/object-hash/package.json +53 -0 collapsed to keep the page light
A node_modules/object-hash/readme.markdown +198 -0 collapsed to keep the page light
A node_modules/package-json-from-dist/LICENSE.md +63 -0 collapsed to keep the page light
A node_modules/package-json-from-dist/README.md +110 -0 collapsed to keep the page light
A node_modules/package-json-from-dist/package.json +68 -0 collapsed to keep the page light
A node_modules/path-key/index.d.ts +40 -0 collapsed to keep the page light
A node_modules/path-key/index.js +16 -0 collapsed to keep the page light
A node_modules/path-key/license +9 -0 collapsed to keep the page light
A node_modules/path-key/package.json +39 -0 collapsed to keep the page light
A node_modules/path-key/readme.md +61 -0 collapsed to keep the page light
A node_modules/path-parse/LICENSE +21 -0 collapsed to keep the page light
A node_modules/path-parse/README.md +42 -0 collapsed to keep the page light
A node_modules/path-parse/index.js +75 -0 collapsed to keep the page light
A node_modules/path-parse/package.json +33 -0 collapsed to keep the page light
A node_modules/path-scurry/LICENSE.md +55 -0 collapsed to keep the page light
A node_modules/path-scurry/README.md +636 -0 collapsed to keep the page light
A node_modules/path-scurry/package.json +89 -0 collapsed to keep the page light
A node_modules/picocolors/LICENSE +15 -0 collapsed to keep the page light
A node_modules/picocolors/README.md +21 -0 collapsed to keep the page light
A node_modules/picocolors/package.json +25 -0 collapsed to keep the page light
A node_modules/picocolors/picocolors.browser.js +4 -0 collapsed to keep the page light
A node_modules/picocolors/picocolors.d.ts +5 -0 collapsed to keep the page light
A node_modules/picocolors/picocolors.js +75 -0 collapsed to keep the page light
A node_modules/picocolors/types.d.ts +51 -0 collapsed to keep the page light
A node_modules/picomatch/CHANGELOG.md +136 -0 collapsed to keep the page light
A node_modules/picomatch/LICENSE +21 -0 collapsed to keep the page light
A node_modules/picomatch/README.md +708 -0 collapsed to keep the page light
A node_modules/picomatch/index.js +3 -0 collapsed to keep the page light
A node_modules/picomatch/lib/constants.js +179 -0 collapsed to keep the page light
A node_modules/picomatch/lib/parse.js +1091 -0 collapsed to keep the page light
A node_modules/picomatch/lib/picomatch.js +342 -0 collapsed to keep the page light
A node_modules/picomatch/lib/scan.js +391 -0 collapsed to keep the page light
A node_modules/picomatch/lib/utils.js +64 -0 collapsed to keep the page light
A node_modules/picomatch/package.json +81 -0 collapsed to keep the page light
A node_modules/pify/index.js +68 -0 collapsed to keep the page light
A node_modules/pify/license +21 -0 collapsed to keep the page light
A node_modules/pify/package.json +48 -0 collapsed to keep the page light
A node_modules/pify/readme.md +119 -0 collapsed to keep the page light
A node_modules/pirates/LICENSE +21 -0 collapsed to keep the page light
A node_modules/pirates/README.md +69 -0 collapsed to keep the page light
A node_modules/pirates/index.d.ts +82 -0 collapsed to keep the page light
A node_modules/pirates/lib/index.js +139 -0 collapsed to keep the page light
A node_modules/pirates/package.json +74 -0 collapsed to keep the page light
A node_modules/postcss-import/LICENSE +20 -0 collapsed to keep the page light
A node_modules/postcss-import/README.md +244 -0 collapsed to keep the page light
A node_modules/postcss-import/index.js +420 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/assign-layer-names.js +17 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/data-url.js +17 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/join-layer.js +9 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/join-media.js +28 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/load-content.js +12 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/parse-statements.js +172 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/process-content.js +59 -0 collapsed to keep the page light
A node_modules/postcss-import/lib/resolve-id.js +42 -0 collapsed to keep the page light
A node_modules/postcss-import/package.json +65 -0 collapsed to keep the page light
A node_modules/postcss-js/LICENSE +20 -0 collapsed to keep the page light
A node_modules/postcss-js/README.md +22 -0 collapsed to keep the page light
A node_modules/postcss-js/async.js +15 -0 collapsed to keep the page light
A node_modules/postcss-js/index.js +11 -0 collapsed to keep the page light
A node_modules/postcss-js/index.mjs +8 -0 collapsed to keep the page light
A node_modules/postcss-js/objectifier.js +85 -0 collapsed to keep the page light
A node_modules/postcss-js/package.json +42 -0 collapsed to keep the page light
A node_modules/postcss-js/parser.js +104 -0 collapsed to keep the page light
A node_modules/postcss-js/process-result.js +11 -0 collapsed to keep the page light
A node_modules/postcss-js/sync.js +12 -0 collapsed to keep the page light
A node_modules/postcss-load-config/LICENSE +20 -0 collapsed to keep the page light
A node_modules/postcss-load-config/README.md +466 -0 collapsed to keep the page light
A node_modules/postcss-load-config/node_modules/lilconfig/LICENSE +21 -0 collapsed to keep the page light
A node_modules/postcss-load-config/node_modules/lilconfig/package.json +42 -0 collapsed to keep the page light
A node_modules/postcss-load-config/node_modules/lilconfig/readme.md +98 -0 collapsed to keep the page light
A node_modules/postcss-load-config/node_modules/lilconfig/src/index.d.ts +54 -0 collapsed to keep the page light
A node_modules/postcss-load-config/node_modules/lilconfig/src/index.js +457 -0 collapsed to keep the page light
A node_modules/postcss-load-config/package.json +54 -0 collapsed to keep the page light
A node_modules/postcss-load-config/src/index.d.ts +65 -0 collapsed to keep the page light
A node_modules/postcss-load-config/src/index.js +185 -0 collapsed to keep the page light
A node_modules/postcss-load-config/src/options.js +47 -0 collapsed to keep the page light
A node_modules/postcss-load-config/src/plugins.js +85 -0 collapsed to keep the page light
A node_modules/postcss-load-config/src/req.js +10 -0 collapsed to keep the page light
A node_modules/postcss-nested/LICENSE +20 -0 collapsed to keep the page light
A node_modules/postcss-nested/README.md +85 -0 collapsed to keep the page light
A node_modules/postcss-nested/index.d.ts +41 -0 collapsed to keep the page light
A node_modules/postcss-nested/index.js +361 -0 collapsed to keep the page light
A node_modules/postcss-nested/package.json +34 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/API.md +872 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/CHANGELOG.md +549 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/LICENSE-MIT +22 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/README.md +49 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/package.json +80 -0 collapsed to keep the page light
A node_modules/postcss-selector-parser/postcss-selector-parser.d.ts +555 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/LICENSE +22 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/README.md +263 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/index.d.ts +177 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/index.js +28 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/parse.js +321 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/stringify.js +48 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/unit.js +120 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/lib/walk.js +22 -0 collapsed to keep the page light
A node_modules/postcss-value-parser/package.json +58 -0 collapsed to keep the page light
A node_modules/postcss/LICENSE +20 -0 collapsed to keep the page light
A node_modules/postcss/README.md +28 -0 collapsed to keep the page light
A node_modules/postcss/lib/at-rule.d.ts +140 -0 collapsed to keep the page light
A node_modules/postcss/lib/at-rule.js +25 -0 collapsed to keep the page light
A node_modules/postcss/lib/comment.d.ts +68 -0 collapsed to keep the page light
A node_modules/postcss/lib/comment.js +13 -0 collapsed to keep the page light
A node_modules/postcss/lib/container.d.ts +480 -0 collapsed to keep the page light
A node_modules/postcss/lib/container.js +447 -0 collapsed to keep the page light
A node_modules/postcss/lib/css-syntax-error.d.ts +248 -0 collapsed to keep the page light
A node_modules/postcss/lib/css-syntax-error.js +133 -0 collapsed to keep the page light
A node_modules/postcss/lib/declaration.d.ts +151 -0 collapsed to keep the page light
A node_modules/postcss/lib/declaration.js +24 -0 collapsed to keep the page light
A node_modules/postcss/lib/document.d.ts +69 -0 collapsed to keep the page light
A node_modules/postcss/lib/document.js +33 -0 collapsed to keep the page light
A node_modules/postcss/lib/fromJSON.d.ts +9 -0 collapsed to keep the page light
A node_modules/postcss/lib/fromJSON.js +54 -0 collapsed to keep the page light
A node_modules/postcss/lib/input.d.ts +206 -0 collapsed to keep the page light
A node_modules/postcss/lib/input.js +251 -0 collapsed to keep the page light
A node_modules/postcss/lib/lazy-result.d.ts +190 -0 collapsed to keep the page light
A node_modules/postcss/lib/lazy-result.js +550 -0 collapsed to keep the page light
A node_modules/postcss/lib/list.d.ts +60 -0 collapsed to keep the page light
A node_modules/postcss/lib/list.js +58 -0 collapsed to keep the page light
A node_modules/postcss/lib/map-generator.js +368 -0 collapsed to keep the page light
A node_modules/postcss/lib/no-work-result.d.ts +46 -0 collapsed to keep the page light
A node_modules/postcss/lib/no-work-result.js +138 -0 collapsed to keep the page light
A node_modules/postcss/lib/node.d.ts +541 -0 collapsed to keep the page light
A node_modules/postcss/lib/node.js +434 -0 collapsed to keep the page light
A node_modules/postcss/lib/parse.d.ts +9 -0 collapsed to keep the page light
A node_modules/postcss/lib/parse.js +42 -0 collapsed to keep the page light
A node_modules/postcss/lib/parser.js +611 -0 collapsed to keep the page light
A node_modules/postcss/lib/postcss.d.mts +69 -0 collapsed to keep the page light
A node_modules/postcss/lib/postcss.d.ts +458 -0 collapsed to keep the page light
A node_modules/postcss/lib/postcss.js +101 -0 collapsed to keep the page light
A node_modules/postcss/lib/postcss.mjs +30 -0 collapsed to keep the page light
A node_modules/postcss/lib/previous-map.d.ts +81 -0 collapsed to keep the page light
A node_modules/postcss/lib/previous-map.js +144 -0 collapsed to keep the page light
A node_modules/postcss/lib/processor.d.ts +115 -0 collapsed to keep the page light
A node_modules/postcss/lib/processor.js +67 -0 collapsed to keep the page light
A node_modules/postcss/lib/result.d.ts +205 -0 collapsed to keep the page light
A node_modules/postcss/lib/result.js +42 -0 collapsed to keep the page light
A node_modules/postcss/lib/root.d.ts +87 -0 collapsed to keep the page light
A node_modules/postcss/lib/root.js +61 -0 collapsed to keep the page light
A node_modules/postcss/lib/rule.d.ts +126 -0 collapsed to keep the page light
A node_modules/postcss/lib/rule.js +27 -0 collapsed to keep the page light
A node_modules/postcss/lib/stringifier.d.ts +46 -0 collapsed to keep the page light
A node_modules/postcss/lib/stringifier.js +353 -0 collapsed to keep the page light
A node_modules/postcss/lib/stringify.d.ts +9 -0 collapsed to keep the page light
A node_modules/postcss/lib/stringify.js +11 -0 collapsed to keep the page light
A node_modules/postcss/lib/symbols.js +5 -0 collapsed to keep the page light
A node_modules/postcss/lib/terminal-highlight.js +70 -0 collapsed to keep the page light
A node_modules/postcss/lib/tokenize.js +266 -0 collapsed to keep the page light
A node_modules/postcss/lib/warn-once.js +13 -0 collapsed to keep the page light
A node_modules/postcss/lib/warning.d.ts +147 -0 collapsed to keep the page light
A node_modules/postcss/lib/warning.js +37 -0 collapsed to keep the page light
A node_modules/postcss/package.json +88 -0 collapsed to keep the page light
A node_modules/prettier-plugin-tailwindcss/LICENSE +21 -0 collapsed to keep the page light
A node_modules/prettier-plugin-tailwindcss/README.md +174 -0 collapsed to keep the page light
A node_modules/prettier-plugin-tailwindcss/package.json +144 -0 collapsed to keep the page light
A node_modules/prettier/LICENSE +7 -0 collapsed to keep the page light
A node_modules/prettier/README.md +108 -0 collapsed to keep the page light
A node_modules/prettier/THIRD-PARTY-NOTICES.md +4416 -0 collapsed to keep the page light
A node_modules/prettier/bin/prettier.cjs +68 -0 collapsed to keep the page light
A node_modules/prettier/doc.d.ts +254 -0 collapsed to keep the page light
A node_modules/prettier/doc.js +1261 -0 collapsed to keep the page light
A node_modules/prettier/doc.mjs +1233 -0 collapsed to keep the page light
A node_modules/prettier/index.cjs +682 -0 collapsed to keep the page light
A node_modules/prettier/index.d.ts +956 -0 collapsed to keep the page light
A node_modules/prettier/index.mjs +22242 -0 collapsed to keep the page light
A node_modules/prettier/internal/cli.mjs +4873 -0 collapsed to keep the page light
A node_modules/prettier/package.json +200 -0 collapsed to keep the page light
A node_modules/prettier/plugins/acorn.d.ts +6 -0 collapsed to keep the page light
A node_modules/prettier/plugins/acorn.js +15 -0 collapsed to keep the page light
A node_modules/prettier/plugins/acorn.mjs +15 -0 collapsed to keep the page light
A node_modules/prettier/plugins/angular.d.ts +8 -0 collapsed to keep the page light
A node_modules/prettier/plugins/angular.js +2 -0 collapsed to keep the page light
A node_modules/prettier/plugins/angular.mjs +2 -0
@@ -0,0 +1,2 @@
1+var $s=Object.defineProperty;var Xt=t=>{throw TypeError(t)};var Jt=(t,e)=>{for(var n in e)$s(t,n,{get:e[n],enumerable:!0})};var it=(t,e,n)=>e.has(t)||Xt("Cannot "+n);var L=(t,e,n)=>(it(t,e,"read from private field"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?Xt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),K=(t,e,n,s)=>(it(t,e,"write to private field"),s?s.call(t,n):e.set(t,n),n),c=(t,e,n)=>(it(t,e,"access private method"),n);var zt={};Jt(zt,{parsers:()=>jt});var jt={};Jt(jt,{__ng_action:()=>Ur,__ng_binding:()=>Wr,__ng_directive:()=>jr,__ng_interpolation:()=>qr});var Gr=new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`,"g");var Yt;(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"})(Yt||(Yt={}));var Qt;(function(t){t[t.OnPush=0]="OnPush",t[t.Default=1]="Default"})(Qt||(Qt={}));var Kt;(function(t){t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform"})(Kt||(Kt={}));var B;(function(t){t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL"})(B||(B={}));var Zt;(function(t){t[t.Error=0]="Error",t[t.Warning=1]="Warning",t[t.Ignore=2]="Ignore"})(Zt||(Zt={}));var en;(function(t){t[t.Little=0]="Little",t[t.Big=1]="Big"})(en||(en={}));var tn;(function(t){t[t.None=0]="None",t[t.Const=1]="Const"})(tn||(tn={}));var nn;(function(t){t[t.Dynamic=0]="Dynamic",t[t.Bool=1]="Bool",t[t.String=2]="String",t[t.Int=3]="Int",t[t.Number=4]="Number",t[t.Function=5]="Function",t[t.Inferred=6]="Inferred",t[t.None=7]="None"})(nn||(nn={}));var Rs=void 0;var sn;(function(t){t[t.Minus=0]="Minus",t[t.Plus=1]="Plus"})(sn||(sn={}));var _;(function(t){t[t.Equals=0]="Equals",t[t.NotEquals=1]="NotEquals",t[t.Identical=2]="Identical",t[t.NotIdentical=3]="NotIdentical",t[t.Minus=4]="Minus",t[t.Plus=5]="Plus",t[t.Divide=6]="Divide",t[t.Multiply=7]="Multiply",t[t.Modulo=8]="Modulo",t[t.And=9]="And",t[t.Or=10]="Or",t[t.BitwiseOr=11]="BitwiseOr",t[t.BitwiseAnd=12]="BitwiseAnd",t[t.Lower=13]="Lower",t[t.LowerEquals=14]="LowerEquals",t[t.Bigger=15]="Bigger",t[t.BiggerEquals=16]="BiggerEquals",t[t.NullishCoalesce=17]="NullishCoalesce"})(_||(_={}));function Bs(t,e){return t==null||e==null?t==e:t.isEquivalent(e)}function Ds(t,e,n){let s=t.length;if(s!==e.length)return!1;for(let r=0;r<s;r++)if(!n(t[r],e[r]))return!1;return!0}function tt(t,e){return Ds(t,e,(n,s)=>n.isEquivalent(s))}var k=class{type;sourceSpan;constructor(e,n){this.type=e||null,this.sourceSpan=n||null}prop(e,n){return new gt(this,e,null,n)}key(e,n,s){return new vt(this,e,n,s)}callFn(e,n,s){return new Xe(this,e,null,n,s)}instantiate(e,n,s){return new ft(this,e,n,s)}conditional(e,n=null,s){return new mt(this,e,n,null,s)}equals(e,n){return new C(_.Equals,this,e,null,n)}notEquals(e,n){return new C(_.NotEquals,this,e,null,n)}identical(e,n){return new C(_.Identical,this,e,null,n)}notIdentical(e,n){return new C(_.NotIdentical,this,e,null,n)}minus(e,n){return new C(_.Minus,this,e,null,n)}plus(e,n){return new C(_.Plus,this,e,null,n)}divide(e,n){return new C(_.Divide,this,e,null,n)}multiply(e,n){return new C(_.Multiply,this,e,null,n)}modulo(e,n){return new C(_.Modulo,this,e,null,n)}and(e,n){return new C(_.And,this,e,null,n)}bitwiseOr(e,n,s=!0){return new C(_.BitwiseOr,this,e,null,n,s)}bitwiseAnd(e,n,s=!0){return new C(_.BitwiseAnd,this,e,null,n,s)}or(e,n){return new C(_.Or,this,e,null,n)}lower(e,n){return new C(_.Lower,this,e,null,n)}lowerEquals(e,n){return new C(_.LowerEquals,this,e,null,n)}bigger(e,n){return new C(_.Bigger,this,e,null,n)}biggerEquals(e,n){return new C(_.BiggerEquals,this,e,null,n)}isBlank(e){return this.equals(TYPED_NULL_EXPR,e)}nullishCoalesce(e,n){return new C(_.NullishCoalesce,this,e,null,n)}toStmt(){return new xt(this,null)}},Ge=class t extends k{name;constructor(e,n,s){super(n,s),this.name=e}isEquivalent(e){return e instanceof t&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadVarExpr(this,n)}clone(){return new t(this.name,this.type,this.sourceSpan)}set(e){return new ut(this.name,e,null,this.sourceSpan)}},ct=class t extends k{expr;constructor(e,n,s){super(n,s),this.expr=e}visitExpression(e,n){return e.visitTypeofExpr(this,n)}isEquivalent(e){return e instanceof t&&e.expr.isEquivalent(this.expr)}isConstant(){return this.expr.isConstant()}clone(){return new t(this.expr.clone())}};var ut=class t extends k{name;value;constructor(e,n,s,r){super(s||n.type,r),this.name=e,this.value=n}isEquivalent(e){return e instanceof t&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteVarExpr(this,n)}clone(){return new t(this.name,this.value.clone(),this.type,this.sourceSpan)}toDeclStmt(e,n){return new wt(this.name,this.value,e,n,this.sourceSpan)}toConstDecl(){return this.toDeclStmt(Rs,Ee.Final)}},pt=class t extends k{receiver;index;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.index=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteKeyExpr(this,n)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.value.clone(),this.type,this.sourceSpan)}},ht=class t extends k{receiver;name;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.name=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWritePropExpr(this,n)}clone(){return new t(this.receiver.clone(),this.name,this.value.clone(),this.type,this.sourceSpan)}},Xe=class t extends k{fn;args;pure;constructor(e,n,s,r,o=!1){super(s,r),this.fn=e,this.args=n,this.pure=o}get receiver(){return this.fn}isEquivalent(e){return e instanceof t&&this.fn.isEquivalent(e.fn)&&tt(this.args,e.args)&&this.pure===e.pure}isConstant(){return!1}visitExpression(e,n){return e.visitInvokeFunctionExpr(this,n)}clone(){return new t(this.fn.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan,this.pure)}};var ft=class t extends k{classExpr;args;constructor(e,n,s,r){super(s,r),this.classExpr=e,this.args=n}isEquivalent(e){return e instanceof t&&this.classExpr.isEquivalent(e.classExpr)&&tt(this.args,e.args)}isConstant(){return!1}visitExpression(e,n){return e.visitInstantiateExpr(this,n)}clone(){return new t(this.classExpr.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan)}},Je=class t extends k{value;constructor(e,n,s){super(n,s),this.value=e}isEquivalent(e){return e instanceof t&&this.value===e.value}isConstant(){return!0}visitExpression(e,n){return e.visitLiteralExpr(this,n)}clone(){return new t(this.value,this.type,this.sourceSpan)}};var dt=class t extends k{value;typeParams;constructor(e,n,s=null,r){super(n,r),this.value=e,this.typeParams=s}isEquivalent(e){return e instanceof t&&this.value.name===e.value.name&&this.value.moduleName===e.value.moduleName}isConstant(){return!1}visitExpression(e,n){return e.visitExternalExpr(this,n)}clone(){return new t(this.value,this.type,this.typeParams,this.sourceSpan)}};var mt=class t extends k{condition;falseCase;trueCase;constructor(e,n,s=null,r,o){super(r||n.type,o),this.condition=e,this.falseCase=s,this.trueCase=n}isEquivalent(e){return e instanceof t&&this.condition.isEquivalent(e.condition)&&this.trueCase.isEquivalent(e.trueCase)&&Bs(this.falseCase,e.falseCase)}isConstant(){return!1}visitExpression(e,n){return e.visitConditionalExpr(this,n)}clone(){var e;return new t(this.condition.clone(),this.trueCase.clone(),(e=this.falseCase)==null?void 0:e.clone(),this.type,this.sourceSpan)}};var C=class t extends k{operator;rhs;parens;lhs;constructor(e,n,s,r,o,a=!0){super(r||n.type,o),this.operator=e,this.rhs=s,this.parens=a,this.lhs=n}isEquivalent(e){return e instanceof t&&this.operator===e.operator&&this.lhs.isEquivalent(e.lhs)&&this.rhs.isEquivalent(e.rhs)}isConstant(){return!1}visitExpression(e,n){return e.visitBinaryOperatorExpr(this,n)}clone(){return new t(this.operator,this.lhs.clone(),this.rhs.clone(),this.type,this.sourceSpan,this.parens)}},gt=class t extends k{receiver;name;constructor(e,n,s,r){super(s,r),this.receiver=e,this.name=n}get index(){return this.name}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadPropExpr(this,n)}set(e){return new ht(this.receiver,this.name,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.name,this.type,this.sourceSpan)}},vt=class t extends k{receiver;index;constructor(e,n,s,r){super(s,r),this.receiver=e,this.index=n}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)}isConstant(){return!1}visitExpression(e,n){return e.visitReadKeyExpr(this,n)}set(e){return new pt(this.receiver,this.index,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.type,this.sourceSpan)}},Ye=class t extends k{entries;constructor(e,n,s){super(n,s),this.entries=e}isConstant(){return this.entries.every(e=>e.isConstant())}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}visitExpression(e,n){return e.visitLiteralArrayExpr(this,n)}clone(){return new t(this.entries.map(e=>e.clone()),this.type,this.sourceSpan)}};var Qe=class t extends k{entries;valueType=null;constructor(e,n,s){super(n,s),this.entries=e,n&&(this.valueType=n.valueType)}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}isConstant(){return this.entries.every(e=>e.value.isConstant())}visitExpression(e,n){return e.visitLiteralMapExpr(this,n)}clone(){let e=this.entries.map(n=>n.clone());return new t(e,this.type,this.sourceSpan)}};var Ee;(function(t){t[t.None=0]="None",t[t.Final=1]="Final",t[t.Private=2]="Private",t[t.Exported=4]="Exported",t[t.Static=8]="Static"})(Ee||(Ee={}));var Ke=class{modifiers;sourceSpan;leadingComments;constructor(e=Ee.None,n=null,s){this.modifiers=e,this.sourceSpan=n,this.leadingComments=s}hasModifier(e){return(this.modifiers&e)!==0}addLeadingComment(e){this.leadingComments=this.leadingComments??[],this.leadingComments.push(e)}},wt=class t extends Ke{name;value;type;constructor(e,n,s,r,o,a){super(r,o,a),this.name=e,this.value=n,this.type=s||n&&n.type||null}isEquivalent(e){return e instanceof t&&this.name===e.name&&(this.value?!!e.value&&this.value.isEquivalent(e.value):!e.value)}visitStatement(e,n){return e.visitDeclareVarStmt(this,n)}};var xt=class t extends Ke{expr;constructor(e,n,s){super(Ee.None,n,s),this.expr=e}isEquivalent(e){return e instanceof t&&this.expr.isEquivalent(e.expr)}visitStatement(e,n){return e.visitExpressionStmt(this,n)}};function Os(t,e,n){return new Ge(t,e,n)}var Xr=Os("<unknown>");var rn=class t{static INSTANCE=new t;keyOf(e){if(e instanceof Je&&typeof e.value=="string")return`"${e.value}"`;if(e instanceof Je)return String(e.value);if(e instanceof Ye){let n=[];for(let s of e.entries)n.push(this.keyOf(s));return`[${n.join(",")}]`}else if(e instanceof Qe){let n=[];for(let s of e.entries){let r=s.key;s.quoted&&(r=`"${r}"`),n.push(r+":"+this.keyOf(s.value))}return`{${n.join(",")}}`}else{if(e instanceof dt)return`import("${e.value.moduleName}", ${e.value.name})`;if(e instanceof Ge)return`read(${e.name})`;if(e instanceof ct)return`typeof(${this.keyOf(e.expr)})`;throw new Error(`${this.constructor.name} does not handle expressions of type ${e.constructor.name}`)}}};var i="@angular/core",P=class{static NEW_METHOD="factory";static TRANSFORM_METHOD="transform";static PATCH_DEPS="patchedDeps";static core={name:null,moduleName:i};static namespaceHTML={name:"\u0275\u0275namespaceHTML",moduleName:i};static namespaceMathML={name:"\u0275\u0275namespaceMathML",moduleName:i};static namespaceSVG={name:"\u0275\u0275namespaceSVG",moduleName:i};static element={name:"\u0275\u0275element",moduleName:i};static elementStart={name:"\u0275\u0275elementStart",moduleName:i};static elementEnd={name:"\u0275\u0275elementEnd",moduleName:i};static advance={name:"\u0275\u0275advance",moduleName:i};static syntheticHostProperty={name:"\u0275\u0275syntheticHostProperty",moduleName:i};static syntheticHostListener={name:"\u0275\u0275syntheticHostListener",moduleName:i};static attribute={name:"\u0275\u0275attribute",moduleName:i};static attributeInterpolate1={name:"\u0275\u0275attributeInterpolate1",moduleName:i};static attributeInterpolate2={name:"\u0275\u0275attributeInterpolate2",moduleName:i};static attributeInterpolate3={name:"\u0275\u0275attributeInterpolate3",moduleName:i};static attributeInterpolate4={name:"\u0275\u0275attributeInterpolate4",moduleName:i};static attributeInterpolate5={name:"\u0275\u0275attributeInterpolate5",moduleName:i};static attributeInterpolate6={name:"\u0275\u0275attributeInterpolate6",moduleName:i};static attributeInterpolate7={name:"\u0275\u0275attributeInterpolate7",moduleName:i};static attributeInterpolate8={name:"\u0275\u0275attributeInterpolate8",moduleName:i};static attributeInterpolateV={name:"\u0275\u0275attributeInterpolateV",moduleName:i};static classProp={name:"\u0275\u0275classProp",moduleName:i};static elementContainerStart={name:"\u0275\u0275elementContainerStart",moduleName:i};static elementContainerEnd={name:"\u0275\u0275elementContainerEnd",moduleName:i};static elementContainer={name:"\u0275\u0275elementContainer",moduleName:i};static styleMap={name:"\u0275\u0275styleMap",moduleName:i};static styleMapInterpolate1={name:"\u0275\u0275styleMapInterpolate1",moduleName:i};static styleMapInterpolate2={name:"\u0275\u0275styleMapInterpolate2",moduleName:i};static styleMapInterpolate3={name:"\u0275\u0275styleMapInterpolate3",moduleName:i};static styleMapInterpolate4={name:"\u0275\u0275styleMapInterpolate4",moduleName:i};static styleMapInterpolate5={name:"\u0275\u0275styleMapInterpolate5",moduleName:i};static styleMapInterpolate6={name:"\u0275\u0275styleMapInterpolate6",moduleName:i};static styleMapInterpolate7={name:"\u0275\u0275styleMapInterpolate7",moduleName:i};static styleMapInterpolate8={name:"\u0275\u0275styleMapInterpolate8",moduleName:i};static styleMapInterpolateV={name:"\u0275\u0275styleMapInterpolateV",moduleName:i};static classMap={name:"\u0275\u0275classMap",moduleName:i};static classMapInterpolate1={name:"\u0275\u0275classMapInterpolate1",moduleName:i};static classMapInterpolate2={name:"\u0275\u0275classMapInterpolate2",moduleName:i};static classMapInterpolate3={name:"\u0275\u0275classMapInterpolate3",moduleName:i};static classMapInterpolate4={name:"\u0275\u0275classMapInterpolate4",moduleName:i};static classMapInterpolate5={name:"\u0275\u0275classMapInterpolate5",moduleName:i};static classMapInterpolate6={name:"\u0275\u0275classMapInterpolate6",moduleName:i};static classMapInterpolate7={name:"\u0275\u0275classMapInterpolate7",moduleName:i};static classMapInterpolate8={name:"\u0275\u0275classMapInterpolate8",moduleName:i};static classMapInterpolateV={name:"\u0275\u0275classMapInterpolateV",moduleName:i};static styleProp={name:"\u0275\u0275styleProp",moduleName:i};static stylePropInterpolate1={name:"\u0275\u0275stylePropInterpolate1",moduleName:i};static stylePropInterpolate2={name:"\u0275\u0275stylePropInterpolate2",moduleName:i};static stylePropInterpolate3={name:"\u0275\u0275stylePropInterpolate3",moduleName:i};static stylePropInterpolate4={name:"\u0275\u0275stylePropInterpolate4",moduleName:i};static stylePropInterpolate5={name:"\u0275\u0275stylePropInterpolate5",moduleName:i};static stylePropInterpolate6={name:"\u0275\u0275stylePropInterpolate6",moduleName:i};static stylePropInterpolate7={name:"\u0275\u0275stylePropInterpolate7",moduleName:i};static stylePropInterpolate8={name:"\u0275\u0275stylePropInterpolate8",moduleName:i};static stylePropInterpolateV={name:"\u0275\u0275stylePropInterpolateV",moduleName:i};static nextContext={name:"\u0275\u0275nextContext",moduleName:i};static resetView={name:"\u0275\u0275resetView",moduleName:i};static templateCreate={name:"\u0275\u0275template",moduleName:i};static defer={name:"\u0275\u0275defer",moduleName:i};static deferWhen={name:"\u0275\u0275deferWhen",moduleName:i};static deferOnIdle={name:"\u0275\u0275deferOnIdle",moduleName:i};static deferOnImmediate={name:"\u0275\u0275deferOnImmediate",moduleName:i};static deferOnTimer={name:"\u0275\u0275deferOnTimer",moduleName:i};static deferOnHover={name:"\u0275\u0275deferOnHover",moduleName:i};static deferOnInteraction={name:"\u0275\u0275deferOnInteraction",moduleName:i};static deferOnViewport={name:"\u0275\u0275deferOnViewport",moduleName:i};static deferPrefetchWhen={name:"\u0275\u0275deferPrefetchWhen",moduleName:i};static deferPrefetchOnIdle={name:"\u0275\u0275deferPrefetchOnIdle",moduleName:i};static deferPrefetchOnImmediate={name:"\u0275\u0275deferPrefetchOnImmediate",moduleName:i};static deferPrefetchOnTimer={name:"\u0275\u0275deferPrefetchOnTimer",moduleName:i};static deferPrefetchOnHover={name:"\u0275\u0275deferPrefetchOnHover",moduleName:i};static deferPrefetchOnInteraction={name:"\u0275\u0275deferPrefetchOnInteraction",moduleName:i};static deferPrefetchOnViewport={name:"\u0275\u0275deferPrefetchOnViewport",moduleName:i};static deferHydrateWhen={name:"\u0275\u0275deferHydrateWhen",moduleName:i};static deferHydrateNever={name:"\u0275\u0275deferHydrateNever",moduleName:i};static deferHydrateOnIdle={name:"\u0275\u0275deferHydrateOnIdle",moduleName:i};static deferHydrateOnImmediate={name:"\u0275\u0275deferHydrateOnImmediate",moduleName:i};static deferHydrateOnTimer={name:"\u0275\u0275deferHydrateOnTimer",moduleName:i};static deferHydrateOnHover={name:"\u0275\u0275deferHydrateOnHover",moduleName:i};static deferHydrateOnInteraction={name:"\u0275\u0275deferHydrateOnInteraction",moduleName:i};static deferHydrateOnViewport={name:"\u0275\u0275deferHydrateOnViewport",moduleName:i};static deferEnableTimerScheduling={name:"\u0275\u0275deferEnableTimerScheduling",moduleName:i};static conditional={name:"\u0275\u0275conditional",moduleName:i};static repeater={name:"\u0275\u0275repeater",moduleName:i};static repeaterCreate={name:"\u0275\u0275repeaterCreate",moduleName:i};static repeaterTrackByIndex={name:"\u0275\u0275repeaterTrackByIndex",moduleName:i};static repeaterTrackByIdentity={name:"\u0275\u0275repeaterTrackByIdentity",moduleName:i};static componentInstance={name:"\u0275\u0275componentInstance",moduleName:i};static text={name:"\u0275\u0275text",moduleName:i};static enableBindings={name:"\u0275\u0275enableBindings",moduleName:i};static disableBindings={name:"\u0275\u0275disableBindings",moduleName:i};static getCurrentView={name:"\u0275\u0275getCurrentView",moduleName:i};static textInterpolate={name:"\u0275\u0275textInterpolate",moduleName:i};static textInterpolate1={name:"\u0275\u0275textInterpolate1",moduleName:i};static textInterpolate2={name:"\u0275\u0275textInterpolate2",moduleName:i};static textInterpolate3={name:"\u0275\u0275textInterpolate3",moduleName:i};static textInterpolate4={name:"\u0275\u0275textInterpolate4",moduleName:i};static textInterpolate5={name:"\u0275\u0275textInterpolate5",moduleName:i};static textInterpolate6={name:"\u0275\u0275textInterpolate6",moduleName:i};static textInterpolate7={name:"\u0275\u0275textInterpolate7",moduleName:i};static textInterpolate8={name:"\u0275\u0275textInterpolate8",moduleName:i};static textInterpolateV={name:"\u0275\u0275textInterpolateV",moduleName:i};static restoreView={name:"\u0275\u0275restoreView",moduleName:i};static pureFunction0={name:"\u0275\u0275pureFunction0",moduleName:i};static pureFunction1={name:"\u0275\u0275pureFunction1",moduleName:i};static pureFunction2={name:"\u0275\u0275pureFunction2",moduleName:i};static pureFunction3={name:"\u0275\u0275pureFunction3",moduleName:i};static pureFunction4={name:"\u0275\u0275pureFunction4",moduleName:i};static pureFunction5={name:"\u0275\u0275pureFunction5",moduleName:i};static pureFunction6={name:"\u0275\u0275pureFunction6",moduleName:i};static pureFunction7={name:"\u0275\u0275pureFunction7",moduleName:i};static pureFunction8={name:"\u0275\u0275pureFunction8",moduleName:i};static pureFunctionV={name:"\u0275\u0275pureFunctionV",moduleName:i};static pipeBind1={name:"\u0275\u0275pipeBind1",moduleName:i};static pipeBind2={name:"\u0275\u0275pipeBind2",moduleName:i};static pipeBind3={name:"\u0275\u0275pipeBind3",moduleName:i};static pipeBind4={name:"\u0275\u0275pipeBind4",moduleName:i};static pipeBindV={name:"\u0275\u0275pipeBindV",moduleName:i};static hostProperty={name:"\u0275\u0275hostProperty",moduleName:i};static property={name:"\u0275\u0275property",moduleName:i};static propertyInterpolate={name:"\u0275\u0275propertyInterpolate",moduleName:i};static propertyInterpolate1={name:"\u0275\u0275propertyInterpolate1",moduleName:i};static propertyInterpolate2={name:"\u0275\u0275propertyInterpolate2",moduleName:i};static propertyInterpolate3={name:"\u0275\u0275propertyInterpolate3",moduleName:i};static propertyInterpolate4={name:"\u0275\u0275propertyInterpolate4",moduleName:i};static propertyInterpolate5={name:"\u0275\u0275propertyInterpolate5",moduleName:i};static propertyInterpolate6={name:"\u0275\u0275propertyInterpolate6",moduleName:i};static propertyInterpolate7={name:"\u0275\u0275propertyInterpolate7",moduleName:i};static propertyInterpolate8={name:"\u0275\u0275propertyInterpolate8",moduleName:i};static propertyInterpolateV={name:"\u0275\u0275propertyInterpolateV",moduleName:i};static i18n={name:"\u0275\u0275i18n",moduleName:i};static i18nAttributes={name:"\u0275\u0275i18nAttributes",moduleName:i};static i18nExp={name:"\u0275\u0275i18nExp",moduleName:i};static i18nStart={name:"\u0275\u0275i18nStart",moduleName:i};static i18nEnd={name:"\u0275\u0275i18nEnd",moduleName:i};static i18nApply={name:"\u0275\u0275i18nApply",moduleName:i};static i18nPostprocess={name:"\u0275\u0275i18nPostprocess",moduleName:i};static pipe={name:"\u0275\u0275pipe",moduleName:i};static projection={name:"\u0275\u0275projection",moduleName:i};static projectionDef={name:"\u0275\u0275projectionDef",moduleName:i};static reference={name:"\u0275\u0275reference",moduleName:i};static inject={name:"\u0275\u0275inject",moduleName:i};static injectAttribute={name:"\u0275\u0275injectAttribute",moduleName:i};static directiveInject={name:"\u0275\u0275directiveInject",moduleName:i};static invalidFactory={name:"\u0275\u0275invalidFactory",moduleName:i};static invalidFactoryDep={name:"\u0275\u0275invalidFactoryDep",moduleName:i};static templateRefExtractor={name:"\u0275\u0275templateRefExtractor",moduleName:i};static forwardRef={name:"forwardRef",moduleName:i};static resolveForwardRef={name:"resolveForwardRef",moduleName:i};static replaceMetadata={name:"\u0275\u0275replaceMetadata",moduleName:i};static \u0275\u0275defineInjectable={name:"\u0275\u0275defineInjectable",moduleName:i};static declareInjectable={name:"\u0275\u0275ngDeclareInjectable",moduleName:i};static InjectableDeclaration={name:"\u0275\u0275InjectableDeclaration",moduleName:i};static resolveWindow={name:"\u0275\u0275resolveWindow",moduleName:i};static resolveDocument={name:"\u0275\u0275resolveDocument",moduleName:i};static resolveBody={name:"\u0275\u0275resolveBody",moduleName:i};static getComponentDepsFactory={name:"\u0275\u0275getComponentDepsFactory",moduleName:i};static defineComponent={name:"\u0275\u0275defineComponent",moduleName:i};static declareComponent={name:"\u0275\u0275ngDeclareComponent",moduleName:i};static setComponentScope={name:"\u0275\u0275setComponentScope",moduleName:i};static ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleName:i};static ViewEncapsulation={name:"ViewEncapsulation",moduleName:i};static ComponentDeclaration={name:"\u0275\u0275ComponentDeclaration",moduleName:i};static FactoryDeclaration={name:"\u0275\u0275FactoryDeclaration",moduleName:i};static declareFactory={name:"\u0275\u0275ngDeclareFactory",moduleName:i};static FactoryTarget={name:"\u0275\u0275FactoryTarget",moduleName:i};static defineDirective={name:"\u0275\u0275defineDirective",moduleName:i};static declareDirective={name:"\u0275\u0275ngDeclareDirective",moduleName:i};static DirectiveDeclaration={name:"\u0275\u0275DirectiveDeclaration",moduleName:i};static InjectorDef={name:"\u0275\u0275InjectorDef",moduleName:i};static InjectorDeclaration={name:"\u0275\u0275InjectorDeclaration",moduleName:i};static defineInjector={name:"\u0275\u0275defineInjector",moduleName:i};static declareInjector={name:"\u0275\u0275ngDeclareInjector",moduleName:i};static NgModuleDeclaration={name:"\u0275\u0275NgModuleDeclaration",moduleName:i};static ModuleWithProviders={name:"ModuleWithProviders",moduleName:i};static defineNgModule={name:"\u0275\u0275defineNgModule",moduleName:i};static declareNgModule={name:"\u0275\u0275ngDeclareNgModule",moduleName:i};static setNgModuleScope={name:"\u0275\u0275setNgModuleScope",moduleName:i};static registerNgModuleType={name:"\u0275\u0275registerNgModuleType",moduleName:i};static PipeDeclaration={name:"\u0275\u0275PipeDeclaration",moduleName:i};static definePipe={name:"\u0275\u0275definePipe",moduleName:i};static declarePipe={name:"\u0275\u0275ngDeclarePipe",moduleName:i};static declareClassMetadata={name:"\u0275\u0275ngDeclareClassMetadata",moduleName:i};static declareClassMetadataAsync={name:"\u0275\u0275ngDeclareClassMetadataAsync",moduleName:i};static setClassMetadata={name:"\u0275setClassMetadata",moduleName:i};static setClassMetadataAsync={name:"\u0275setClassMetadataAsync",moduleName:i};static setClassDebugInfo={name:"\u0275setClassDebugInfo",moduleName:i};static queryRefresh={name:"\u0275\u0275queryRefresh",moduleName:i};static viewQuery={name:"\u0275\u0275viewQuery",moduleName:i};static loadQuery={name:"\u0275\u0275loadQuery",moduleName:i};static contentQuery={name:"\u0275\u0275contentQuery",moduleName:i};static viewQuerySignal={name:"\u0275\u0275viewQuerySignal",moduleName:i};static contentQuerySignal={name:"\u0275\u0275contentQuerySignal",moduleName:i};static queryAdvance={name:"\u0275\u0275queryAdvance",moduleName:i};static twoWayProperty={name:"\u0275\u0275twoWayProperty",moduleName:i};static twoWayBindingSet={name:"\u0275\u0275twoWayBindingSet",moduleName:i};static twoWayListener={name:"\u0275\u0275twoWayListener",moduleName:i};static declareLet={name:"\u0275\u0275declareLet",moduleName:i};static storeLet={name:"\u0275\u0275storeLet",moduleName:i};static readContextLet={name:"\u0275\u0275readContextLet",moduleName:i};static attachSourceLocations={name:"\u0275\u0275attachSourceLocations",moduleName:i};static NgOnChangesFeature={name:"\u0275\u0275NgOnChangesFeature",moduleName:i};static InheritDefinitionFeature={name:"\u0275\u0275InheritDefinitionFeature",moduleName:i};static CopyDefinitionFeature={name:"\u0275\u0275CopyDefinitionFeature",moduleName:i};static ProvidersFeature={name:"\u0275\u0275ProvidersFeature",moduleName:i};static HostDirectivesFeature={name:"\u0275\u0275HostDirectivesFeature",moduleName:i};static InputTransformsFeatureFeature={name:"\u0275\u0275InputTransformsFeature",moduleName:i};static ExternalStylesFeature={name:"\u0275\u0275ExternalStylesFeature",moduleName:i};static listener={name:"\u0275\u0275listener",moduleName:i};static getInheritedFactory={name:"\u0275\u0275getInheritedFactory",moduleName:i};static sanitizeHtml={name:"\u0275\u0275sanitizeHtml",moduleName:i};static sanitizeStyle={name:"\u0275\u0275sanitizeStyle",moduleName:i};static sanitizeResourceUrl={name:"\u0275\u0275sanitizeResourceUrl",moduleName:i};static sanitizeScript={name:"\u0275\u0275sanitizeScript",moduleName:i};static sanitizeUrl={name:"\u0275\u0275sanitizeUrl",moduleName:i};static sanitizeUrlOrResourceUrl={name:"\u0275\u0275sanitizeUrlOrResourceUrl",moduleName:i};static trustConstantHtml={name:"\u0275\u0275trustConstantHtml",moduleName:i};static trustConstantResourceUrl={name:"\u0275\u0275trustConstantResourceUrl",moduleName:i};static validateIframeAttribute={name:"\u0275\u0275validateIframeAttribute",moduleName:i};static InputSignalBrandWriteType={name:"\u0275INPUT_SIGNAL_BRAND_WRITE_TYPE",moduleName:i};static UnwrapDirectiveSignalInputs={name:"\u0275UnwrapDirectiveSignalInputs",moduleName:i};static unwrapWritableSignal={name:"\u0275unwrapWritableSignal",moduleName:i}};var St=class{full;major;minor;patch;constructor(e){this.full=e;let n=e.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}};var on;(function(t){t[t.Class=0]="Class",t[t.Function=1]="Function"})(on||(on={}));var an;(function(t){t[t.Directive=0]="Directive",t[t.Component=1]="Component",t[t.Injectable=2]="Injectable",t[t.Pipe=3]="Pipe",t[t.NgModule=4]="NgModule"})(an||(an={}));var ye=class{input;errLocation;ctxLocation;message;constructor(e,n,s,r){this.input=n,this.errLocation=s,this.ctxLocation=r,this.message=`Parser Error: ${e} ${s} [${n}] in ${r}`}},G=class{start;end;constructor(e,n){this.start=e,this.end=n}toAbsolute(e){return new O(e+this.start,e+this.end)}},E=class{span;sourceSpan;constructor(e,n){this.span=e,this.sourceSpan=n}toString(){return"AST"}},se=class extends E{nameSpan;constructor(e,n,s){super(e,n),this.nameSpan=s}},b=class extends E{visit(e,n=null){}},X=class extends E{visit(e,n=null){return e.visitImplicitReceiver(this,n)}},Et=class extends X{visit(e,n=null){var s;return(s=e.visitThisReceiver)==null?void 0:s.call(e,this,n)}},_e=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitChain(this,n)}},Ce=class extends E{condition;trueExp;falseExp;constructor(e,n,s,r,o){super(e,n),this.condition=s,this.trueExp=r,this.falseExp=o}visit(e,n=null){return e.visitConditional(this,n)}},re=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitPropertyRead(this,n)}},Te=class extends se{receiver;name;value;constructor(e,n,s,r,o,a){super(e,n,s),this.receiver=r,this.name=o,this.value=a}visit(e,n=null){return e.visitPropertyWrite(this,n)}},ie=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitSafePropertyRead(this,n)}},ke=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitKeyedRead(this,n)}},oe=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitSafeKeyedRead(this,n)}},Ie=class extends E{receiver;key;value;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.key=r,this.value=o}visit(e,n=null){return e.visitKeyedWrite(this,n)}},be=class extends se{exp;name;args;constructor(e,n,s,r,o,a){super(e,n,a),this.exp=s,this.name=r,this.args=o}visit(e,n=null){return e.visitPipe(this,n)}},N=class extends E{value;constructor(e,n,s){super(e,n),this.value=s}visit(e,n=null){return e.visitLiteralPrimitive(this,n)}},Ne=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitLiteralArray(this,n)}},Ae=class extends E{keys;values;constructor(e,n,s,r){super(e,n),this.keys=s,this.values=r}visit(e,n=null){return e.visitLiteralMap(this,n)}},Pe=class extends E{strings;expressions;constructor(e,n,s,r){super(e,n),this.strings=s,this.expressions=r}visit(e,n=null){return e.visitInterpolation(this,n)}},A=class extends E{operation;left;right;constructor(e,n,s,r,o){super(e,n),this.operation=s,this.left=r,this.right=o}visit(e,n=null){return e.visitBinary(this,n)}},ae=class t extends A{operator;expr;left=null;right=null;operation=null;static createMinus(e,n,s){return new t(e,n,"-",s,"-",new N(e,n,0),s)}static createPlus(e,n,s){return new t(e,n,"+",s,"-",s,new N(e,n,0))}constructor(e,n,s,r,o,a,l){super(e,n,o,a,l),this.operator=s,this.expr=r}visit(e,n=null){return e.visitUnary!==void 0?e.visitUnary(this,n):e.visitBinary(this,n)}},Le=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitPrefixNot(this,n)}},Me=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitTypeofExpression(this,n)}},$e=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitNonNullAssert(this,n)}},Re=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitCall(this,n)}},le=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitSafeCall(this,n)}},O=class{start;end;constructor(e,n){this.start=e,this.end=n}},W=class extends E{ast;source;location;errors;constructor(e,n,s,r,o){super(new G(0,n===null?0:n.length),new O(r,n===null?r:r+n.length)),this.ast=e,this.source=n,this.location=s,this.errors=o}visit(e,n=null){return e.visitASTWithSource?e.visitASTWithSource(this,n):this.ast.visit(e,n)}toString(){return`${this.source} in ${this.location}`}},ce=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},Be=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},yt=class{visit(e,n){e.visit(this,n)}visitUnary(e,n){this.visit(e.expr,n)}visitBinary(e,n){this.visit(e.left,n),this.visit(e.right,n)}visitChain(e,n){this.visitAll(e.expressions,n)}visitConditional(e,n){this.visit(e.condition,n),this.visit(e.trueExp,n),this.visit(e.falseExp,n)}visitPipe(e,n){this.visit(e.exp,n),this.visitAll(e.args,n)}visitImplicitReceiver(e,n){}visitThisReceiver(e,n){}visitInterpolation(e,n){this.visitAll(e.expressions,n)}visitKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitKeyedWrite(e,n){this.visit(e.receiver,n),this.visit(e.key,n),this.visit(e.value,n)}visitLiteralArray(e,n){this.visitAll(e.expressions,n)}visitLiteralMap(e,n){this.visitAll(e.values,n)}visitLiteralPrimitive(e,n){}visitPrefixNot(e,n){this.visit(e.expression,n)}visitTypeofExpression(e,n){this.visit(e.expression,n)}visitNonNullAssert(e,n){this.visit(e.expression,n)}visitPropertyRead(e,n){this.visit(e.receiver,n)}visitPropertyWrite(e,n){this.visit(e.receiver,n),this.visit(e.value,n)}visitSafePropertyRead(e,n){this.visit(e.receiver,n)}visitSafeKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitSafeCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitAll(e,n){for(let s of e)this.visit(s,n)}};var ln;(function(t){t[t.DEFAULT=0]="DEFAULT",t[t.LITERAL_ATTR=1]="LITERAL_ATTR",t[t.ANIMATION=2]="ANIMATION",t[t.TWO_WAY=3]="TWO_WAY"})(ln||(ln={}));var cn;(function(t){t[t.Regular=0]="Regular",t[t.Animation=1]="Animation",t[t.TwoWay=2]="TwoWay"})(cn||(cn={}));var H;(function(t){t[t.Property=0]="Property",t[t.Attribute=1]="Attribute",t[t.Class=2]="Class",t[t.Style=3]="Style",t[t.Animation=4]="Animation",t[t.TwoWay=5]="TwoWay"})(H||(H={}));var un;(function(t){t[t.RAW_TEXT=0]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA=2]="PARSABLE_DATA"})(un||(un={}));var Fs=[/@/,/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function Vs(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let n=e[0],s=e[1];Fs.forEach(r=>{if(r.test(n)||r.test(s))throw new Error(`['${n}', '${s}'] contains unusable interpolation symbol.`)})}}var _t=class t{start;end;static fromArray(e){return e?(Vs("interpolation",e),new t(e[0],e[1])):Z}constructor(e,n){this.start=e,this.end=n}},Z=new _t("{{","}}");var ot=0;var Un=9,Hs=10,Us=11,Ws=12,qs=13,Wn=32,js=33,qn=34,zs=35,jn=36,Gs=37,pn=38,zn=39,je=40,me=41,Xs=42,Gn=43,ge=44,Xn=45,ee=46,Ct=47,te=58,ve=59,Js=60,qe=61,Ys=62,hn=63,Qs=48;var Ks=57,Jn=65,Zs=69;var Yn=90,ze=91,er=92,we=93,tr=94,Mt=95,Qn=97;var nr=101,sr=102,rr=110,ir=114,or=116,ar=117,lr=118;var Kn=122,Tt=123,fn=124,xe=125,Zn=160;var cr=96;function ur(t){return t>=Un&&t<=Wn||t==Zn}function j(t){return Qs<=t&&t<=Ks}function pr(t){return t>=Qn&&t<=Kn||t>=Jn&&t<=Yn}function dn(t){return t===zn||t===qn||t===cr}var mn;(function(t){t[t.WARNING=0]="WARNING",t[t.ERROR=1]="ERROR"})(mn||(mn={}));var gn;(function(t){t[t.Inline=0]="Inline",t[t.SideEffect=1]="SideEffect",t[t.Omit=2]="Omit"})(gn||(gn={}));var vn;(function(t){t[t.Global=0]="Global",t[t.Local=1]="Local"})(vn||(vn={}));var wn;(function(t){t[t.Directive=0]="Directive",t[t.Pipe=1]="Pipe",t[t.NgModule=2]="NgModule"})(wn||(wn={}));var hr="(:(where|is)\\()?";var es="-shadowcsshost",ts="-shadowcsscontext",$t="(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",Jr=new RegExp(es+$t,"gim"),Yr=new RegExp(hr+"("+ts+$t+")","gim"),Qr=new RegExp(ts+$t,"im"),fr=es+"-no-combinator",Kr=new RegExp(`${fr}(?![^(]*\\))`,"g");var ns="%COMMENT%",Zr=new RegExp(ns,"g");var ei=new RegExp(`(\\s*(?:${ns}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`,"g");var dr="%COMMA_IN_PLACEHOLDER%",mr="%SEMI_IN_PLACEHOLDER%",gr="%COLON_IN_PLACEHOLDER%",ti=new RegExp(dr,"g"),ni=new RegExp(mr,"g"),si=new RegExp(gr,"g");var f;(function(t){t[t.ListEnd=0]="ListEnd",t[t.Statement=1]="Statement",t[t.Variable=2]="Variable",t[t.ElementStart=3]="ElementStart",t[t.Element=4]="Element",t[t.Template=5]="Template",t[t.ElementEnd=6]="ElementEnd",t[t.ContainerStart=7]="ContainerStart",t[t.Container=8]="Container",t[t.ContainerEnd=9]="ContainerEnd",t[t.DisableBindings=10]="DisableBindings",t[t.Conditional=11]="Conditional",t[t.EnableBindings=12]="EnableBindings",t[t.Text=13]="Text",t[t.Listener=14]="Listener",t[t.InterpolateText=15]="InterpolateText",t[t.Binding=16]="Binding",t[t.Property=17]="Property",t[t.StyleProp=18]="StyleProp",t[t.ClassProp=19]="ClassProp",t[t.StyleMap=20]="StyleMap",t[t.ClassMap=21]="ClassMap",t[t.Advance=22]="Advance",t[t.Pipe=23]="Pipe",t[t.Attribute=24]="Attribute",t[t.ExtractedAttribute=25]="ExtractedAttribute",t[t.Defer=26]="Defer",t[t.DeferOn=27]="DeferOn",t[t.DeferWhen=28]="DeferWhen",t[t.I18nMessage=29]="I18nMessage",t[t.HostProperty=30]="HostProperty",t[t.Namespace=31]="Namespace",t[t.ProjectionDef=32]="ProjectionDef",t[t.Projection=33]="Projection",t[t.RepeaterCreate=34]="RepeaterCreate",t[t.Repeater=35]="Repeater",t[t.TwoWayProperty=36]="TwoWayProperty",t[t.TwoWayListener=37]="TwoWayListener",t[t.DeclareLet=38]="DeclareLet",t[t.StoreLet=39]="StoreLet",t[t.I18nStart=40]="I18nStart",t[t.I18n=41]="I18n",t[t.I18nEnd=42]="I18nEnd",t[t.I18nExpression=43]="I18nExpression",t[t.I18nApply=44]="I18nApply",t[t.IcuStart=45]="IcuStart",t[t.IcuEnd=46]="IcuEnd",t[t.IcuPlaceholder=47]="IcuPlaceholder",t[t.I18nContext=48]="I18nContext",t[t.I18nAttributes=49]="I18nAttributes",t[t.SourceLocation=50]="SourceLocation"})(f||(f={}));var J;(function(t){t[t.LexicalRead=0]="LexicalRead",t[t.Context=1]="Context",t[t.TrackContext=2]="TrackContext",t[t.ReadVariable=3]="ReadVariable",t[t.NextContext=4]="NextContext",t[t.Reference=5]="Reference",t[t.StoreLet=6]="StoreLet",t[t.ContextLetReference=7]="ContextLetReference",t[t.GetCurrentView=8]="GetCurrentView",t[t.RestoreView=9]="RestoreView",t[t.ResetView=10]="ResetView",t[t.PureFunctionExpr=11]="PureFunctionExpr",t[t.PureFunctionParameterExpr=12]="PureFunctionParameterExpr",t[t.PipeBinding=13]="PipeBinding",t[t.PipeBindingVariadic=14]="PipeBindingVariadic",t[t.SafePropertyRead=15]="SafePropertyRead",t[t.SafeKeyedRead=16]="SafeKeyedRead",t[t.SafeInvokeFunction=17]="SafeInvokeFunction",t[t.SafeTernaryExpr=18]="SafeTernaryExpr",t[t.EmptyExpr=19]="EmptyExpr",t[t.AssignTemporaryExpr=20]="AssignTemporaryExpr",t[t.ReadTemporaryExpr=21]="ReadTemporaryExpr",t[t.SlotLiteralExpr=22]="SlotLiteralExpr",t[t.ConditionalCase=23]="ConditionalCase",t[t.ConstCollected=24]="ConstCollected",t[t.TwoWayBindingSet=25]="TwoWayBindingSet"})(J||(J={}));var xn;(function(t){t[t.None=0]="None",t[t.AlwaysInline=1]="AlwaysInline"})(xn||(xn={}));var Sn;(function(t){t[t.Context=0]="Context",t[t.Identifier=1]="Identifier",t[t.SavedView=2]="SavedView",t[t.Alias=3]="Alias"})(Sn||(Sn={}));var En;(function(t){t[t.Normal=0]="Normal",t[t.TemplateDefinitionBuilder=1]="TemplateDefinitionBuilder"})(En||(En={}));var U;(function(t){t[t.Attribute=0]="Attribute",t[t.ClassName=1]="ClassName",t[t.StyleProperty=2]="StyleProperty",t[t.Property=3]="Property",t[t.Template=4]="Template",t[t.I18n=5]="I18n",t[t.Animation=6]="Animation",t[t.TwoWayProperty=7]="TwoWayProperty"})(U||(U={}));var yn;(function(t){t[t.Creation=0]="Creation",t[t.Postproccessing=1]="Postproccessing"})(yn||(yn={}));var _n;(function(t){t[t.I18nText=0]="I18nText",t[t.I18nAttribute=1]="I18nAttribute"})(_n||(_n={}));var Cn;(function(t){t[t.None=0]="None",t[t.ElementTag=1]="ElementTag",t[t.TemplateTag=2]="TemplateTag",t[t.OpenTag=4]="OpenTag",t[t.CloseTag=8]="CloseTag",t[t.ExpressionIndex=16]="ExpressionIndex"})(Cn||(Cn={}));var Tn;(function(t){t[t.HTML=0]="HTML",t[t.SVG=1]="SVG",t[t.Math=2]="Math"})(Tn||(Tn={}));var kn;(function(t){t[t.Idle=0]="Idle",t[t.Immediate=1]="Immediate",t[t.Timer=2]="Timer",t[t.Hover=3]="Hover",t[t.Interaction=4]="Interaction",t[t.Viewport=5]="Viewport",t[t.Never=6]="Never"})(kn||(kn={}));var In;(function(t){t[t.RootI18n=0]="RootI18n",t[t.Icu=1]="Icu",t[t.Attr=2]="Attr"})(In||(In={}));var bn;(function(t){t[t.NgTemplate=0]="NgTemplate",t[t.Structural=1]="Structural",t[t.Block=2]="Block"})(bn||(bn={}));var vr=Symbol("ConsumesSlot"),ss=Symbol("DependsOnSlotContext"),Oe=Symbol("ConsumesVars"),Rt=Symbol("UsesVarOffset"),ri={[vr]:!0,numSlotsUsed:1},ii={[ss]:!0},oi={[Oe]:!0};var Ze=class{strings;expressions;i18nPlaceholders;constructor(e,n,s){if(this.strings=e,this.expressions=n,this.i18nPlaceholders=s,s.length!==0&&s.length!==n.length)throw new Error(`Expected ${n.length} placeholders to match interpolation expression count, but got ${s.length}`)}};var Y=class extends k{constructor(e=null){super(null,e)}};var Nn=class t extends Y{target;value;sourceSpan;kind=J.StoreLet;[Oe]=!0;[ss]=!0;constructor(e,n,s){super(),this.target=e,this.value=n,this.sourceSpan=s}visitExpression(){}isEquivalent(e){return e instanceof t&&e.target===this.target&&e.value.isEquivalent(this.value)}isConstant(){return!1}transformInternalExpressions(e,n){this.value=(this.value,void 0)}clone(){return new t(this.target,this.value,this.sourceSpan)}};var An=class t extends Y{kind=J.PureFunctionExpr;[Oe]=!0;[Rt]=!0;varOffset=null;body;args;fn=null;constructor(e,n){super(),this.body=e,this.args=n}visitExpression(e,n){var s;(s=this.body)==null||s.visitExpression(e,n);for(let r of this.args)r.visitExpression(e,n)}isEquivalent(e){return!(e instanceof t)||e.args.length!==this.args.length?!1:e.body!==null&&this.body!==null&&e.body.isEquivalent(this.body)&&e.args.every((n,s)=>n.isEquivalent(this.args[s]))}isConstant(){return!1}transformInternalExpressions(e,n){this.body!==null?this.body=(this.body,n|bt.InChildOperation,void 0):this.fn!==null&&(this.fn=(this.fn,void 0));for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){var n,s;let e=new t(((n=this.body)==null?void 0:n.clone())??null,this.args.map(r=>r.clone()));return e.fn=((s=this.fn)==null?void 0:s.clone())??null,e.varOffset=this.varOffset,e}};var kt=class t extends Y{target;targetSlot;name;args;kind=J.PipeBinding;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r}visitExpression(e,n){for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){let e=new t(this.target,this.targetSlot,this.name,this.args.map(n=>n.clone()));return e.varOffset=this.varOffset,e}},Pn=class t extends Y{target;targetSlot;name;args;numArgs;kind=J.PipeBindingVariadic;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r,o){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r,this.numArgs=o}visitExpression(e,n){this.args.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.args=(this.args,void 0)}clone(){let e=new t(this.target,this.targetSlot,this.name,this.args.clone(),this.numArgs);return e.varOffset=this.varOffset,e}};var It=class t extends Y{receiver;args;kind=J.SafeInvokeFunction;constructor(e,n){super(),this.receiver=e,this.args=n}visitExpression(e,n){this.receiver.visitExpression(e,n);for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.receiver=(this.receiver,void 0);for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){return new t(this.receiver.clone(),this.args.map(e=>e.clone()))}};var bt;(function(t){t[t.None=0]="None",t[t.InChildOperation=1]="InChildOperation"})(bt||(bt={}));var ai=new Set([f.Element,f.ElementStart,f.Container,f.ContainerStart,f.Template,f.RepeaterCreate]);var Ln;(function(t){t[t.Tmpl=0]="Tmpl",t[t.Host=1]="Host",t[t.Both=2]="Both"})(Ln||(Ln={}));var li=Object.freeze([]);var ci=new Map([[f.ElementEnd,[f.ElementStart,f.Element]],[f.ContainerEnd,[f.ContainerStart,f.Container]],[f.I18nEnd,[f.I18nStart,f.I18n]]]),ui=new Set([f.Pipe]);var pi=[Xe,Ye,Qe,It,kt].map(t=>t.constructor.name);var wr={},xr="\uE500";wr.ngsp=xr;var Mn;(function(t){t.HEX="hexadecimal",t.DEC="decimal"})(Mn||(Mn={}));var rs=` \f
2+\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`,hi=new RegExp(`[^${rs}]`),fi=new RegExp(`[${rs}]{2,}`,"g");var d;(function(t){t[t.Character=0]="Character",t[t.Identifier=1]="Identifier",t[t.PrivateIdentifier=2]="PrivateIdentifier",t[t.Keyword=3]="Keyword",t[t.String=4]="String",t[t.Operator=5]="Operator",t[t.Number=6]="Number",t[t.Error=7]="Error"})(d||(d={}));var Sr=["var","let","as","null","undefined","true","false","if","else","this","typeof"],De=class{tokenize(e){let n=new Nt(e),s=[],r=n.scanToken();for(;r!=null;)s.push(r),r=n.scanToken();return s}},M=class{index;end;type;numValue;strValue;constructor(e,n,s,r,o){this.index=e,this.end=n,this.type=s,this.numValue=r,this.strValue=o}isCharacter(e){return this.type==d.Character&&this.numValue==e}isNumber(){return this.type==d.Number}isString(){return this.type==d.String}isOperator(e){return this.type==d.Operator&&this.strValue==e}isIdentifier(){return this.type==d.Identifier}isPrivateIdentifier(){return this.type==d.PrivateIdentifier}isKeyword(){return this.type==d.Keyword}isKeywordLet(){return this.type==d.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==d.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==d.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==d.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==d.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==d.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==d.Keyword&&this.strValue=="this"}isKeywordTypeof(){return this.type===d.Keyword&&this.strValue==="typeof"}isError(){return this.type==d.Error}toNumber(){return this.type==d.Number?this.numValue:-1}toString(){switch(this.type){case d.Character:case d.Identifier:case d.Keyword:case d.Operator:case d.PrivateIdentifier:case d.String:case d.Error:return this.strValue;case d.Number:return this.numValue.toString();default:return null}}};function $n(t,e,n){return new M(t,e,d.Character,n,String.fromCharCode(n))}function Er(t,e,n){return new M(t,e,d.Identifier,0,n)}function yr(t,e,n){return new M(t,e,d.PrivateIdentifier,0,n)}function _r(t,e,n){return new M(t,e,d.Keyword,0,n)}function at(t,e,n){return new M(t,e,d.Operator,0,n)}function Cr(t,e,n){return new M(t,e,d.String,0,n)}function Tr(t,e,n){return new M(t,e,d.Number,n,"")}function kr(t,e,n){return new M(t,e,d.Error,0,n)}var lt=new M(-1,-1,d.Character,0,""),Nt=class{input;length;peek=0;index=-1;constructor(e){this.input=e,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?ot:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,n=this.length,s=this.peek,r=this.index;for(;s<=Wn;)if(++r>=n){s=ot;break}else s=e.charCodeAt(r);if(this.peek=s,this.index=r,r>=n)return null;if(Rn(s))return this.scanIdentifier();if(j(s))return this.scanNumber(r);let o=r;switch(s){case ee:return this.advance(),j(this.peek)?this.scanNumber(o):$n(o,this.index,ee);case je:case me:case Tt:case xe:case ze:case we:case ge:case te:case ve:return this.scanCharacter(o,s);case zn:case qn:return this.scanString();case zs:return this.scanPrivateIdentifier();case Gn:case Xn:case Xs:case Ct:case Gs:case tr:return this.scanOperator(o,String.fromCharCode(s));case hn:return this.scanQuestion(o);case Js:case Ys:return this.scanComplexOperator(o,String.fromCharCode(s),qe,"=");case js:case qe:return this.scanComplexOperator(o,String.fromCharCode(s),qe,"=",qe,"=");case pn:return this.scanComplexOperator(o,"&",pn,"&");case fn:return this.scanComplexOperator(o,"|",fn,"|");case Zn:for(;ur(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(e,n){return this.advance(),$n(e,this.index,n)}scanOperator(e,n){return this.advance(),at(e,this.index,n)}scanComplexOperator(e,n,s,r,o,a){this.advance();let l=n;return this.peek==s&&(this.advance(),l+=r),o!=null&&this.peek==o&&(this.advance(),l+=a),at(e,this.index,l)}scanIdentifier(){let e=this.index;for(this.advance();Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return Sr.indexOf(n)>-1?_r(e,this.index,n):Er(e,this.index,n)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!Rn(this.peek))return this.error("Invalid character [#]",-1);for(;Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return yr(e,this.index,n)}scanNumber(e){let n=this.index===e,s=!1;for(this.advance();;){if(!j(this.peek))if(this.peek===Mt){if(!j(this.input.charCodeAt(this.index-1))||!j(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===ee)n=!1;else if(Ir(this.peek)){if(this.advance(),br(this.peek)&&this.advance(),!j(this.peek))return this.error("Invalid exponent",-1);n=!1}else break;this.advance()}let r=this.input.substring(e,this.index);s&&(r=r.replace(/_/g,""));let o=n?Ar(r):parseFloat(r);return Tr(e,this.index,o)}scanString(){let e=this.index,n=this.peek;this.advance();let s="",r=this.index,o=this.input;for(;this.peek!=n;)if(this.peek==er){s+=o.substring(r,this.index);let l;if(this.advance(),this.peek==ar){let u=o.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(u))l=parseInt(u,16);else return this.error(`Invalid unicode escape [\\u${u}]`,0);for(let h=0;h<5;h++)this.advance()}else l=Nr(this.peek),this.advance();s+=String.fromCharCode(l),r=this.index}else{if(this.peek==ot)return this.error("Unterminated quote",0);this.advance()}let a=o.substring(r,this.index);return this.advance(),Cr(e,this.index,s+a)}scanQuestion(e){this.advance();let n="?";return(this.peek===hn||this.peek===ee)&&(n+=this.peek===ee?".":"?",this.advance()),at(e,this.index,n)}error(e,n){let s=this.index+n;return kr(s,this.index,`Lexer Error: ${e} at column ${s} in expression [${this.input}]`)}};function Rn(t){return Qn<=t&&t<=Kn||Jn<=t&&t<=Yn||t==Mt||t==jn}function Bn(t){return pr(t)||j(t)||t==Mt||t==jn}function Ir(t){return t==nr||t==Zs}function br(t){return t==Xn||t==Gn}function Nr(t){switch(t){case rr:return Hs;case sr:return Ws;case ir:return qs;case or:return Un;case lr:return Us;default:return t}}function Ar(t){let e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}var At=class{strings;expressions;offsets;constructor(e,n,s){this.strings=e,this.expressions=n,this.offsets=s}},Pt=class{templateBindings;warnings;errors;constructor(e,n,s){this.templateBindings=e,this.warnings=n,this.errors=s}},ue=class{_lexer;errors=[];constructor(e){this._lexer=e}parseAction(e,n,s,r=Z){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o),l=new z(e,n,s,a,1,this.errors,0).parseChain();return new W(l,e,n,s,this.errors)}parseBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r);return new W(o,e,n,s,this.errors)}checkSimpleExpression(e){let n=new Lt;return e.visit(n),n.errors}parseSimpleBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r),a=this.checkSimpleExpression(o);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,e,n),new W(o,e,n,s,this.errors)}_reportError(e,n,s,r){this.errors.push(new ye(e,n,s,r))}_parseBindingAst(e,n,s,r){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o);return new z(e,n,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(e,n,s,r,o){let a=this._lexer.tokenize(n);return new z(n,s,o,a,0,this.errors,0).parseTemplateBindings({source:e,span:new O(r,r+e.length)})}parseInterpolation(e,n,s,r,o=Z){let{strings:a,expressions:l,offsets:u}=this.splitInterpolation(e,n,r,o);if(l.length===0)return null;let h=[];for(let g=0;g<l.length;++g){let S=l[g].text,w=this._stripComments(S),y=this._lexer.tokenize(w),T=new z(e,n,s,y,0,this.errors,u[g]).parseChain();h.push(T)}return this.createInterpolationAst(a.map(g=>g.text),h,e,n,s)}parseInterpolationExpression(e,n,s){let r=this._stripComments(e),o=this._lexer.tokenize(r),a=new z(e,n,s,o,0,this.errors,0).parseChain(),l=["",""];return this.createInterpolationAst(l,[a],e,n,s)}createInterpolationAst(e,n,s,r,o){let a=new G(0,s.length),l=new Pe(a,a.toAbsolute(o),e,n);return new W(l,s,r,o,this.errors)}splitInterpolation(e,n,s,r=Z){let o=[],a=[],l=[],u=s?Pr(s):null,h=0,g=!1,S=!1,{start:w,end:y}=r;for(;h<e.length;)if(g){let T=h,F=T+w.length,fe=this._getInterpolationEndIndex(e,y,F);if(fe===-1){g=!1,S=!0;break}let de=fe+y.length,q=e.substring(F,fe);q.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",e,`at column ${h} in`,n),a.push({text:q,start:T,end:de});let Ms=((u==null?void 0:u.get(T))??T)+w.length;l.push(Ms),h=de,g=!1}else{let T=h;h=e.indexOf(w,h),h===-1&&(h=e.length);let F=e.substring(T,h);o.push({text:F,start:T,end:h}),g=!0}if(!g)if(S){let T=o[o.length-1];T.text+=e.substring(h),T.end=e.length}else o.push({text:e.substring(h),start:h,end:e.length});return new At(o,a,l)}wrapLiteralPrimitive(e,n,s){let r=new G(0,e==null?0:e.length);return new W(new N(r,r.toAbsolute(s),e),e,n,s,this.errors)}_stripComments(e){let n=this._commentStart(e);return n!=null?e.substring(0,n):e}_commentStart(e){let n=null;for(let s=0;s<e.length-1;s++){let r=e.charCodeAt(s),o=e.charCodeAt(s+1);if(r===Ct&&o==Ct&&n==null)return s;n===r?n=null:n==null&&dn(r)&&(n=r)}return null}_checkNoInterpolation(e,n,{start:s,end:r}){let o=-1,a=-1;for(let l of this._forEachUnquotedChar(e,0))if(o===-1)e.startsWith(s)&&(o=l);else if(a=this._getInterpolationEndIndex(e,r,l),a>-1)break;o>-1&&a>-1&&this._reportError(`Got interpolation (${s}${r}) where expression was expected`,e,`at column ${o} in`,n)}_getInterpolationEndIndex(e,n,s){for(let r of this._forEachUnquotedChar(e,s)){if(e.startsWith(n,r))return r;if(e.startsWith("//",r))return e.indexOf(n,r)}return-1}*_forEachUnquotedChar(e,n){let s=null,r=0;for(let o=n;o<e.length;o++){let a=e[o];dn(e.charCodeAt(o))&&(s===null||s===a)&&r%2===0?s=s===null?a:null:s===null&&(yield o),r=a==="\\"?r+1:0}}},ne;(function(t){t[t.None=0]="None",t[t.Writable=1]="Writable"})(ne||(ne={}));var z=class{input;location;absoluteOffset;tokens;parseFlags;errors;offset;rparensExpected=0;rbracketsExpected=0;rbracesExpected=0;context=ne.None;sourceSpanCache=new Map;index=0;constructor(e,n,s,r,o,a,l){this.input=e,this.location=n,this.absoluteOffset=s,this.tokens=r,this.parseFlags=o,this.errors=a,this.offset=l}peek(e){let n=this.index+e;return n<this.tokens.length?this.tokens[n]:lt}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,n){let s=this.currentEndIndex;if(n!==void 0&&n>this.currentEndIndex&&(s=n),e>s){let r=s;s=e,e=r}return new G(e,s)}sourceSpan(e,n){let s=`${e}@${this.inputIndex}:${n}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(e,n).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(e,n){this.context|=e;let s=n();return this.context^=e,s}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===lt?"end of input":`token ${e}`}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),""):(this.advance(),e.toString())}parseChain(){let e=[],n=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(e.push(s),this.consumeOptionalCharacter(ve))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(ve););else if(this.index<this.tokens.length){let r=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===r)break}}if(e.length===0){let s=this.offset,r=this.offset+this.input.length;return new b(this.span(s,r),this.sourceSpan(s,r))}return e.length==1?e[0]:new _e(this.span(n),this.sourceSpan(n),e)}parsePipe(){let e=this.inputIndex,n=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,r=this.expectIdentifierOrKeyword(),o,a;r!==null?o=this.sourceSpan(s):(r="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,o=new G(a,a).toAbsolute(this.absoluteOffset));let l=[];for(;this.consumeOptionalCharacter(te);)l.push(this.parseExpression());n=new be(this.span(e),this.sourceSpan(e,a),n,r,l,o)}while(this.consumeOptionalOperator("|"))}return n}parseExpression(){return this.parseConditional()}parseConditional(){let e=this.inputIndex,n=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),r;if(this.consumeOptionalCharacter(te))r=this.parsePipe();else{let o=this.inputIndex,a=this.input.substring(e,o);this.error(`Conditional expression ${a} requires all 3 expressions`),r=new b(this.span(e),this.sourceSpan(e))}return new Ce(this.span(e),this.sourceSpan(e),n,s,r)}else return n}parseLogicalOr(){let e=this.inputIndex,n=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();n=new A(this.span(e),this.sourceSpan(e),"||",n,s)}return n}parseLogicalAnd(){let e=this.inputIndex,n=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();n=new A(this.span(e),this.sourceSpan(e),"&&",n,s)}return n}parseNullishCoalescing(){let e=this.inputIndex,n=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();n=new A(this.span(e),this.sourceSpan(e),"??",n,s)}return n}parseEquality(){let e=this.inputIndex,n=this.parseRelational();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let r=this.parseRelational();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseRelational(){let e=this.inputIndex,n=this.parseAdditive();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let r=this.parseAdditive();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseAdditive(){let e=this.inputIndex,n=this.parseMultiplicative();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let r=this.parseMultiplicative();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseMultiplicative(){let e=this.inputIndex,n=this.parsePrefix();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let r=this.parsePrefix();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parsePrefix(){if(this.next.type==d.Operator){let e=this.inputIndex,n=this.next.strValue,s;switch(n){case"+":return this.advance(),s=this.parsePrefix(),ae.createPlus(this.span(e),this.sourceSpan(e),s);case"-":return this.advance(),s=this.parsePrefix(),ae.createMinus(this.span(e),this.sourceSpan(e),s);case"!":return this.advance(),s=this.parsePrefix(),new Le(this.span(e),this.sourceSpan(e),s)}}else if(this.next.isKeywordTypeof()){this.advance();let e=this.inputIndex,n=this.parsePrefix();return new Me(this.span(e),this.sourceSpan(e),n)}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,n=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(ee))n=this.parseAccessMember(n,e,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(je)?n=this.parseCall(n,e,!0):n=this.consumeOptionalCharacter(ze)?this.parseKeyedReadOrWrite(n,e,!0):this.parseAccessMember(n,e,!0);else if(this.consumeOptionalCharacter(ze))n=this.parseKeyedReadOrWrite(n,e,!1);else if(this.consumeOptionalCharacter(je))n=this.parseCall(n,e,!1);else if(this.consumeOptionalOperator("!"))n=new $e(this.span(e),this.sourceSpan(e),n);else return n}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(je)){this.rparensExpected++;let n=this.parsePipe();return this.rparensExpected--,this.expectCharacter(me),n}else{if(this.next.isKeywordNull())return this.advance(),new N(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new N(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new N(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new N(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Et(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(ze)){this.rbracketsExpected++;let n=this.parseExpressionList(we);return this.rbracketsExpected--,this.expectCharacter(we),new Ne(this.span(e),this.sourceSpan(e),n)}else{if(this.next.isCharacter(Tt))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new X(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let n=this.next.toNumber();return this.advance(),new N(this.span(e),this.sourceSpan(e),n)}else if(this.next.isString()){let n=this.next.toString();return this.advance(),new N(this.span(e),this.sourceSpan(e),n)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new b(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new b(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new b(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let n=[];do if(!this.next.isCharacter(e))n.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ge));return n}parseLiteralMap(){let e=[],n=[],s=this.inputIndex;if(this.expectCharacter(Tt),!this.consumeOptionalCharacter(xe)){this.rbracesExpected++;do{let r=this.inputIndex,o=this.next.isString(),a=this.expectIdentifierOrKeywordOrString(),l={key:a,quoted:o};if(e.push(l),o)this.expectCharacter(te),n.push(this.parsePipe());else if(this.consumeOptionalCharacter(te))n.push(this.parsePipe());else{l.isShorthandInitialized=!0;let u=this.span(r),h=this.sourceSpan(r);n.push(new re(u,h,h,new X(u,h),a))}}while(this.consumeOptionalCharacter(ge)&&!this.next.isCharacter(xe));this.rbracesExpected--,this.expectCharacter(xe)}return new Ae(this.span(s),this.sourceSpan(s),e,n)}parseAccessMember(e,n,s){let r=this.inputIndex,o=this.withContext(ne.Writable,()=>{let u=this.expectIdentifierOrKeyword()??"";return u.length===0&&this.error("Expected identifier for property access",e.span.end),u}),a=this.sourceSpan(r),l;if(s)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),l=new b(this.span(n),this.sourceSpan(n))):l=new ie(this.span(n),this.sourceSpan(n),a,e,o);else if(this.consumeOptionalOperator("=")){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new b(this.span(n),this.sourceSpan(n));let u=this.parseConditional();l=new Te(this.span(n),this.sourceSpan(n),a,e,o,u)}else l=new re(this.span(n),this.sourceSpan(n),a,e,o);return l}parseCall(e,n,s){let r=this.inputIndex;this.rparensExpected++;let o=this.parseCallArguments(),a=this.span(r,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(me),this.rparensExpected--;let l=this.span(n),u=this.sourceSpan(n);return s?new le(l,u,e,o,a):new Re(l,u,e,o,a)}parseCallArguments(){if(this.next.isCharacter(me))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ge));return e}expectTemplateBindingKey(){let e="",n=!1,s=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),n=this.consumeOptionalOperator("-"),n&&(e+="-");while(n);return{source:e,span:new O(s,s+e.length)}}parseTemplateBindings(e){let n=[];for(n.push(...this.parseDirectiveKeywordBindings(e));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)n.push(s);else{let r=this.expectTemplateBindingKey(),o=this.parseAsBinding(r);o?n.push(o):(r.source=e.source+r.source.charAt(0).toUpperCase()+r.source.substring(1),n.push(...this.parseDirectiveKeywordBindings(r)))}this.consumeStatementTerminator()}return new Pt(n,[],this.errors)}parseKeyedReadOrWrite(e,n,s){return this.withContext(ne.Writable,()=>{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof b&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(we),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let o=this.parseConditional();return new Ie(this.span(n),this.sourceSpan(n),e,r,o)}else return s?new oe(this.span(n),this.sourceSpan(n),e,r):new ke(this.span(n),this.sourceSpan(n),e,r);return new b(this.span(n),this.sourceSpan(n))})}parseDirectiveKeywordBindings(e){let n=[];this.consumeOptionalCharacter(te);let s=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,o=this.parseAsBinding(e);o||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new O(e.span.start,r);return n.push(new Be(a,e,s)),o&&n.push(o),n}getDirectiveBoundTarget(){if(this.next===lt||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:n,end:s}=e.span,r=this.input.substring(n,s);return new W(e,r,this.location,this.absoluteOffset+n,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let n=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new O(e.span.start,this.currentAbsoluteOffset);return new ce(s,n,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let n=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new O(e,this.currentAbsoluteOffset);return new ce(r,n,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(ve)||this.consumeOptionalCharacter(ge)}error(e,n=null){this.errors.push(new ye(e,this.input,this.locationText(n),this.location)),this.skip()}locationText(e=null){return e==null&&(e=this.index),e<this.tokens.length?`at column ${this.tokens[e].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(e,n){let s=`Private identifiers are not supported. Unexpected private identifier: ${e}`;n!==null&&(s+=`, ${n}`),this.error(s)}skip(){let e=this.next;for(;this.index<this.tokens.length&&!e.isCharacter(ve)&&!e.isOperator("|")&&(this.rparensExpected<=0||!e.isCharacter(me))&&(this.rbracesExpected<=0||!e.isCharacter(xe))&&(this.rbracketsExpected<=0||!e.isCharacter(we))&&(!(this.context&ne.Writable)||!e.isOperator("="));)this.next.isError()&&this.errors.push(new ye(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),e=this.next}},Lt=class extends yt{errors=[];visitPipe(){this.errors.push("pipes")}};function Pr(t){let e=new Map,n=0,s=0,r=0;for(;r<t.length;){let o=t[r];if(o.type===9){let[a,l]=o.parts;n+=l.length,s+=a.length}else{let a=o.parts.reduce((l,u)=>l+u.length,0);s+=a,n+=a}e.set(s,n),r++}return e}var Lr=new Map(Object.entries({class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"})),di=Array.from(Lr).reduce((t,[e,n])=>(t.set(e,n),t),new Map);var mi=new ue(new De);function D(t){return e=>e.kind===t}function Se(t,e){return n=>n.kind===t&&e===n.expression instanceof Ze}function Mr(t){return(t.kind===f.Property||t.kind===f.TwoWayProperty)&&!(t.expression instanceof Ze)}var gi=[{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)},{test:Se(f.Attribute,!0)},{test:Se(f.Property,!0)},{test:Mr},{test:Se(f.Attribute,!1)}],vi=[{test:Se(f.HostProperty,!0)},{test:Se(f.HostProperty,!1)},{test:D(f.Attribute)},{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)}],wi=new Set([f.Listener,f.TwoWayListener,f.StyleMap,f.ClassMap,f.StyleProp,f.ClassProp,f.Property,f.TwoWayProperty,f.HostProperty,f.Attribute]);function et(t){return t.slice(t.length-1)}var xi=new Map([["window",P.resolveWindow],["document",P.resolveDocument],["body",P.resolveBody]]);var Si=new Map([[B.HTML,P.sanitizeHtml],[B.RESOURCE_URL,P.sanitizeResourceUrl],[B.SCRIPT,P.sanitizeScript],[B.STYLE,P.sanitizeStyle],[B.URL,P.sanitizeUrl]]),Ei=new Map([[B.HTML,P.trustConstantHtml],[B.RESOURCE_URL,P.trustConstantResourceUrl]]);var Dn;(function(t){t[t.None=0]="None",t[t.ViewContextRead=1]="ViewContextRead",t[t.ViewContextWrite=2]="ViewContextWrite",t[t.SideEffectful=4]="SideEffectful"})(Dn||(Dn={}));var yi=new Map([[H.Property,U.Property],[H.TwoWay,U.TwoWayProperty],[H.Attribute,U.Attribute],[H.Class,U.ClassName],[H.Style,U.StyleProperty],[H.Animation,U.Animation]]);var _i=Symbol("queryAdvancePlaceholder");var On;(function(t){t[t.NG_CONTENT=0]="NG_CONTENT",t[t.STYLE=1]="STYLE",t[t.STYLESHEET=2]="STYLESHEET",t[t.SCRIPT=3]="SCRIPT",t[t.OTHER=4]="OTHER"})(On||(On={}));var Fn;(function(t){t.IDLE="idle",t.TIMER="timer",t.INTERACTION="interaction",t.IMMEDIATE="immediate",t.HOVER="hover",t.VIEWPORT="viewport",t.NEVER="never"})(Fn||(Fn={}));var is="%COMP%",Ci=`_nghost-${is}`,Ti=`_ngcontent-${is}`;var ki=new St("19.1.2");var Vn;(function(t){t[t.Extract=0]="Extract",t[t.Merge=1]="Merge"})(Vn||(Vn={}));var Hn;(function(t){t[t.Directive=0]="Directive",t[t.Component=1]="Component",t[t.Injectable=2]="Injectable",t[t.Pipe=3]="Pipe",t[t.NgModule=4]="NgModule"})(Hn||(Hn={}));function os({start:t,end:e},n){let s=t,r=e;for(;r!==s&&/\s/.test(n[r-1]);)r--;for(;s!==r&&/\s/.test(n[s]);)s++;return{start:s,end:r}}function Rr({start:t,end:e},n){let s=t,r=e;for(;r!==n.length&&/\s/.test(n[r]);)r++;for(;s!==0&&/\s/.test(n[s-1]);)s--;return{start:s,end:r}}function Br(t,e){return e[t.start-1]==="("&&e[t.end]===")"?{start:t.start-1,end:t.end+1}:t}function as(t,e,n){let s=0,r={start:t.start,end:t.end};for(;;){let o=Rr(r,e),a=Br(o,e);if(o.start===a.start&&o.end===a.end)break;r.start=a.start,r.end=a.end,s++}return{hasParens:(n?s-1:s)!==0,outerSpan:os(n?{start:r.start+1,end:r.end-1}:r,e),innerSpan:os(t,e)}}function ls(t){return typeof t=="string"?e=>e===t:e=>t.test(e)}function cs(t,e,n){let s=ls(e);for(let r=n;r>=0;r--){let o=t[r];if(s(o))return r}throw new Error(`Cannot find front char ${e} from index ${n} in ${JSON.stringify(t)}`)}function us(t,e,n){let s=ls(e);for(let r=n;r<t.length;r++){let o=t[r];if(s(o))return r}throw new Error(`Cannot find character ${e} from index ${n} in ${JSON.stringify(t)}`)}function ps(t){return t.slice(0,1).toLowerCase()+t.slice(1)}function Fe(t){let{start:e,end:n}=t;return{start:e,end:n,range:[e,n]}}var Dr=t=>ue.prototype._commentStart(t);function Or(t,e){let n=e?Dr(t):null;if(n===null)return{text:t,comments:[]};let s={type:"CommentLine",value:t.slice(n+2),...Fe({start:n,end:t.length})};return{text:t.slice(0,n),comments:[s]}}function Ve(t,e=!0){return n=>{let s=new De,r=new ue(s),{text:o,comments:a}=Or(n,e),l=t(o,r);if(l.errors.length!==0){let[{message:u}]=l.errors;throw new SyntaxError(u.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}return{result:l,comments:a,text:o}}}var hs=Ve((t,e)=>e.parseBinding(t,"",0)),Fr=Ve((t,e)=>e.parseSimpleBinding(t,"",0)),fs=Ve((t,e)=>e.parseAction(t,"",0)),ds=Ve((t,e)=>e.parseInterpolationExpression(t,"",0)),ms=Ve((t,e)=>e.parseTemplateBindings("",t,"",0,0),!1);var Hr=(t,e,n)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e=="string"?e[n<0?e.length+n:n]:e.at(n)},nt=Hr;var Bt=class{text;constructor(e){this.text=e}getCharacterIndex(e,n){return us(this.text,e,n)}getCharacterLastIndex(e,n){return cs(this.text,e,n)}transformSpan(e,{stripSpaces:n=!1,hasParentParens:s=!1}={}){if(!n)return Fe(e);let{outerSpan:r,innerSpan:o,hasParens:a}=as(e,this.text,s),l=Fe(o);return a&&(l.extra={parenthesized:!0,parenStart:r.start,parenEnd:r.end}),l}createNode(e,{stripSpaces:n=!0,hasParentParens:s=!1}={}){let{type:r,start:o,end:a}=e,l={...e,...this.transformSpan({start:o,end:a},{stripSpaces:n,hasParentParens:s})};switch(r){case"NumericLiteral":case"StringLiteral":{let u=this.text.slice(l.start,l.end),{value:h}=l;l.extra={...l.extra,raw:u,rawValue:h};break}case"ObjectProperty":{let{shorthand:u}=l;u&&(l.extra={...l.extra,shorthand:u});break}}return l}},gs=Bt;function Ot(t){var e;return!!((e=t.extra)!=null&&e.parenthesized)}function $(t){return Ot(t)?t.extra.parenStart:t.start}function R(t){return Ot(t)?t.extra.parenEnd:t.end}function vs(t){return(t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression")&&!Ot(t)}function ws(t,e){let{start:n,end:s}=t.sourceSpan;return n>=s||/^\s+$/.test(e.slice(n,s))}var We,pe,p,v,He,x,Dt,Ue=class extends gs{constructor(n,s){super(s);V(this,p);V(this,We);V(this,pe);K(this,We,n),K(this,pe,s)}get node(){return c(this,p,x).call(this,L(this,We))}transformNode(n){return c(this,p,Dt).call(this,n)}};We=new WeakMap,pe=new WeakMap,p=new WeakSet,v=function(n,{stripSpaces:s=!0,hasParentParens:r=!1}={}){return this.createNode(n,{stripSpaces:s,hasParentParens:r})},He=function(n,s,{computed:r,optional:o,end:a=R(s),hasParentParens:l=!1}){if(ws(n,L(this,pe))||n.sourceSpan.start===s.start)return s;let u=c(this,p,x).call(this,n),h=vs(u);return c(this,p,v).call(this,{type:o||h?"OptionalMemberExpression":"MemberExpression",object:u,property:s,computed:r,...o?{optional:!0}:h?{optional:!1}:void 0,start:$(u),end:a},{hasParentParens:l})},x=function(n,s=!1){return c(this,p,Dt).call(this,n,s)},Dt=function(n,s=!1){if(n instanceof Pe){let{expressions:o}=n;if(o.length!==1)throw new Error("Unexpected 'Interpolation'");return c(this,p,x).call(this,o[0])}if(n instanceof ae)return c(this,p,v).call(this,{type:"UnaryExpression",prefix:!0,argument:c(this,p,x).call(this,n.expr),operator:n.operator,...n.sourceSpan},{hasParentParens:s});if(n instanceof A){let{left:o,operation:a,right:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,l),g=$(u),S=R(h),w={left:u,right:h,start:g,end:S};return a==="&&"||a==="||"||a==="??"?c(this,p,v).call(this,{...w,type:"LogicalExpression",operator:a},{hasParentParens:s}):c(this,p,v).call(this,{...w,type:"BinaryExpression",operator:a},{hasParentParens:s})}if(n instanceof be){let{exp:o,name:a,args:l}=n,u=c(this,p,x).call(this,o),h=$(u),g=R(u),S=this.getCharacterIndex(/\S/,this.getCharacterIndex("|",g)+1),w=c(this,p,v).call(this,{type:"Identifier",name:a,start:S,end:S+a.length}),y=l.map(T=>c(this,p,x).call(this,T));return c(this,p,v).call(this,{type:"NGPipeExpression",left:u,right:w,arguments:y,start:h,end:R(y.length===0?w:nt(!1,y,-1))},{hasParentParens:s})}if(n instanceof _e)return c(this,p,v).call(this,{type:"NGChainedExpression",expressions:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ce){let{condition:o,trueExp:a,falseExp:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,a),g=c(this,p,x).call(this,l);return c(this,p,v).call(this,{type:"ConditionalExpression",test:u,consequent:h,alternate:g,start:$(u),end:R(g)},{hasParentParens:s})}if(n instanceof b)return c(this,p,v).call(this,{type:"NGEmptyExpression",...n.sourceSpan},{hasParentParens:s});if(n instanceof X)return c(this,p,v).call(this,{type:"ThisExpression",...n.sourceSpan},{hasParentParens:s});if(n instanceof ke||n instanceof oe)return c(this,p,He).call(this,n.receiver,c(this,p,x).call(this,n.key),{computed:!0,optional:n instanceof oe,end:n.sourceSpan.end,hasParentParens:s});if(n instanceof Ne)return c(this,p,v).call(this,{type:"ArrayExpression",elements:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ae){let{keys:o,values:a}=n,l=a.map(h=>c(this,p,x).call(this,h)),u=o.map(({key:h,quoted:g},S)=>{let w=l[S],y=$(w),T=R(w),F=this.getCharacterIndex(/\S/,S===0?n.sourceSpan.start+1:this.getCharacterIndex(",",R(l[S-1]))+1),fe=y===F?T:this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex(":",y-1)-1)+1,de={start:F,end:fe},q=g?c(this,p,v).call(this,{type:"StringLiteral",value:h,...de}):c(this,p,v).call(this,{type:"Identifier",name:h,...de}),Gt=q.end<q.start||F===y;return c(this,p,v).call(this,{type:"ObjectProperty",key:q,value:w,shorthand:Gt,computed:!1,start:$(q),end:T})});return c(this,p,v).call(this,{type:"ObjectExpression",properties:u,...n.sourceSpan},{hasParentParens:s})}if(n instanceof N){let{value:o}=n;switch(typeof o){case"boolean":return c(this,p,v).call(this,{type:"BooleanLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"number":return c(this,p,v).call(this,{type:"NumericLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"object":return c(this,p,v).call(this,{type:"NullLiteral",...n.sourceSpan},{hasParentParens:s});case"string":return c(this,p,v).call(this,{type:"StringLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"undefined":return c(this,p,v).call(this,{type:"Identifier",name:"undefined",...n.sourceSpan},{hasParentParens:s});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof o}`)}}if(n instanceof Re||n instanceof le){let o=n instanceof le,{receiver:a,args:l}=n,u=l.length===1?[c(this,p,x).call(this,l[0],!0)]:l.map(w=>c(this,p,x).call(this,w)),h=c(this,p,x).call(this,a),g=vs(h),S=o||g?"OptionalCallExpression":"CallExpression";return c(this,p,v).call(this,{type:S,callee:h,arguments:u,optional:S==="OptionalCallExpression"?o:void 0,start:$(h),end:n.sourceSpan.end},{hasParentParens:s})}if(n instanceof $e){let o=c(this,p,x).call(this,n.expression);return c(this,p,v).call(this,{type:"TSNonNullExpression",expression:o,start:$(o),end:n.sourceSpan.end},{hasParentParens:s})}let r=n instanceof Le;if(r||n instanceof Me){let o=c(this,p,x).call(this,n.expression),a=r?"!":"typeof",{start:l}=n.sourceSpan;if(!r){let u=this.text.lastIndexOf(a,l);if(u===-1)throw new Error(`Cannot find operator ${a} from index ${l} in ${JSON.stringify(this.text)}`);l=u}return c(this,p,v).call(this,{type:"UnaryExpression",prefix:!0,operator:a,argument:o,start:l,end:R(o)},{hasParentParens:s})}if(n instanceof re||n instanceof ie){let{receiver:o,name:a}=n,l=this.getCharacterLastIndex(/\S/,n.sourceSpan.end-1)+1,u=c(this,p,v).call(this,{type:"Identifier",name:a,start:l-a.length,end:l},ws(o,L(this,pe))?{hasParentParens:s}:{});return c(this,p,He).call(this,o,u,{computed:!1,optional:n instanceof ie,hasParentParens:s})}if(n instanceof Ie){let o=c(this,p,x).call(this,n.key),a=c(this,p,x).call(this,n.value),l=c(this,p,He).call(this,n.receiver,o,{computed:!0,optional:!1,end:this.getCharacterIndex("]",R(o))+1});return c(this,p,v).call(this,{type:"AssignmentExpression",left:l,operator:"=",right:a,start:$(l),end:R(a)},{hasParentParens:s})}if(n instanceof Te){let{receiver:o,name:a,value:l}=n,u=c(this,p,x).call(this,l),h=this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex("=",$(u)-1)-1)+1,g=c(this,p,v).call(this,{type:"Identifier",name:a,start:h-a.length,end:h}),S=c(this,p,He).call(this,o,g,{computed:!1,optional:!1});return c(this,p,v).call(this,{type:"AssignmentExpression",left:S,operator:"=",right:u,start:$(S),end:R(u)},{hasParentParens:s})}throw Object.assign(new Error("Unexpected node"),{node:n})};function xs(t,e){return new Ue(t,e).node}function Ss(t){return t instanceof Be}function Es(t){return t instanceof ce}var he,Q,m,ys,I,Vt,Ht,Ut,_s,Cs,Ts,ks,Ft=class extends Ue{constructor(n,s){super(void 0,s);V(this,m);V(this,he);V(this,Q);K(this,he,n),K(this,Q,s);for(let r of n)c(this,m,_s).call(this,r)}get expressions(){return c(this,m,Ts).call(this)}};he=new WeakMap,Q=new WeakMap,m=new WeakSet,ys=function(){return L(this,he)[0].key},I=function(n,{stripSpaces:s=!0}={}){return this.createNode(n,{stripSpaces:s})},Vt=function(n){return this.transformNode(n)},Ht=function(n){return ps(n.slice(L(this,m,ys).source.length))},Ut=function(n){let s=L(this,Q);if(s[n.start]!=='"'&&s[n.start]!=="'")return;let r=s[n.start],o=!1;for(let a=n.start+1;a<s.length;a++)switch(s[a]){case r:if(!o){n.end=a+1;return}default:o=!1;break;case"\\":o=!o;break}},_s=function(n){c(this,m,Ut).call(this,n.key.span),Es(n)&&n.value&&c(this,m,Ut).call(this,n.value.span)},Cs=function(n){if(!n.value||n.value.source)return n.value;let s=this.getCharacterIndex(/\S/,n.sourceSpan.start);return{source:"$implicit",span:{start:s,end:s}}},Ts=function(){let n=L(this,he),[s]=n,r=L(this,Q).slice(s.sourceSpan.start,s.sourceSpan.end).trim().length===0?n.slice(1):n,o=[],a=null;for(let[l,u]of r.entries()){if(a&&Ss(a)&&Es(u)&&u.value&&u.value.source===a.key.source){let h=c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:u.key.source,...u.key.span}),g=(y,T)=>({...y,...this.transformSpan({start:y.start,end:T})}),S=y=>({...g(y,h.end),alias:h}),w=o.pop();if(w.type==="NGMicrosyntaxExpression")o.push(S(w));else if(w.type==="NGMicrosyntaxKeyedExpression"){let y=S(w.expression);o.push(g({...w,expression:y},y.end))}else throw new Error(`Unexpected type ${w.type}`)}else o.push(c(this,m,ks).call(this,u,l));a=u}return c(this,m,I).call(this,{type:"NGMicrosyntax",body:o,...o.length===0?n[0].sourceSpan:{start:o[0].start,end:nt(!1,o,-1).end}})},ks=function(n,s){if(Ss(n)){let{key:r,value:o}=n;return o?s===0?c(this,m,I).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}):c(this,m,I).call(this,{type:"NGMicrosyntaxKeyedExpression",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:c(this,m,Ht).call(this,r.source),...r.span}),expression:c(this,m,I).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}),start:r.span.start,end:o.sourceSpan.end}):c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:c(this,m,Ht).call(this,r.source),...r.span})}else{let{key:r,sourceSpan:o}=n;if(/^let\s$/.test(L(this,Q).slice(o.start,o.start+4))){let{value:l}=n;return c(this,m,I).call(this,{type:"NGMicrosyntaxLet",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:r.source,...r.span}),value:l?c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:l.source,...l.span}):null,start:o.start,end:l?l.span.end:r.span.end})}else{let l=c(this,m,Cs).call(this,n);return c(this,m,I).call(this,{type:"NGMicrosyntaxAs",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:l.source,...l.span}),alias:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:r.source,...r.span}),start:l.span.start,end:r.span.end})}}};function Is(t,e){return new Ft(t,e).expressions}function st({result:{ast:t},text:e,comments:n}){return Object.assign(xs(t,e),{comments:n})}function bs({result:{templateBindings:t},text:e}){return Is(t,e)}var Ns=t=>st(hs(t));var As=t=>st(ds(t)),Wt=t=>st(fs(t)),Ps=t=>bs(ms(t));function qt(t){var s,r,o;let e=((s=t.range)==null?void 0:s[0])??t.start,n=(o=((r=t.declaration)==null?void 0:r.decorators)??t.decorators)==null?void 0:o[0];return n?Math.min(qt(n),e):e}function Ls(t){var e;return((e=t.range)==null?void 0:e[1])??t.end}function rt(t){return{astFormat:"estree",parse(e){let n=t(e);return{type:"NGRoot",node:t===Wt&&n.type!=="NGChainedExpression"?{...n,type:"NGChainedExpression",expressions:[n]}:n}},locStart:qt,locEnd:Ls}}var Ur=rt(Wt),Wr=rt(Ns),qr=rt(As),jr=rt(Ps);var Zi=zt;export{Zi as default,jt as parsers};
@@ -0,0 +1,2 @@
1+var $s=Object.defineProperty;var Xt=t=>{throw TypeError(t)};var Jt=(t,e)=>{for(var n in e)$s(t,n,{get:e[n],enumerable:!0})};var it=(t,e,n)=>e.has(t)||Xt("Cannot "+n);var L=(t,e,n)=>(it(t,e,"read from private field"),n?n.call(t):e.get(t)),V=(t,e,n)=>e.has(t)?Xt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),K=(t,e,n,s)=>(it(t,e,"write to private field"),s?s.call(t,n):e.set(t,n),n),c=(t,e,n)=>(it(t,e,"access private method"),n);var zt={};Jt(zt,{parsers:()=>jt});var jt={};Jt(jt,{__ng_action:()=>Ur,__ng_binding:()=>Wr,__ng_directive:()=>jr,__ng_interpolation:()=>qr});var Gr=new RegExp(`(\\:not\\()|(([\\.\\#]?)[-\\w]+)|(?:\\[([-.\\w*\\\\$]+)(?:=(["']?)([^\\]"']*)\\5)?\\])|(\\))|(\\s*,\\s*)`,"g");var Yt;(function(t){t[t.Emulated=0]="Emulated",t[t.None=2]="None",t[t.ShadowDom=3]="ShadowDom"})(Yt||(Yt={}));var Qt;(function(t){t[t.OnPush=0]="OnPush",t[t.Default=1]="Default"})(Qt||(Qt={}));var Kt;(function(t){t[t.None=0]="None",t[t.SignalBased=1]="SignalBased",t[t.HasDecoratorInputTransform=2]="HasDecoratorInputTransform"})(Kt||(Kt={}));var B;(function(t){t[t.NONE=0]="NONE",t[t.HTML=1]="HTML",t[t.STYLE=2]="STYLE",t[t.SCRIPT=3]="SCRIPT",t[t.URL=4]="URL",t[t.RESOURCE_URL=5]="RESOURCE_URL"})(B||(B={}));var Zt;(function(t){t[t.Error=0]="Error",t[t.Warning=1]="Warning",t[t.Ignore=2]="Ignore"})(Zt||(Zt={}));var en;(function(t){t[t.Little=0]="Little",t[t.Big=1]="Big"})(en||(en={}));var tn;(function(t){t[t.None=0]="None",t[t.Const=1]="Const"})(tn||(tn={}));var nn;(function(t){t[t.Dynamic=0]="Dynamic",t[t.Bool=1]="Bool",t[t.String=2]="String",t[t.Int=3]="Int",t[t.Number=4]="Number",t[t.Function=5]="Function",t[t.Inferred=6]="Inferred",t[t.None=7]="None"})(nn||(nn={}));var Rs=void 0;var sn;(function(t){t[t.Minus=0]="Minus",t[t.Plus=1]="Plus"})(sn||(sn={}));var _;(function(t){t[t.Equals=0]="Equals",t[t.NotEquals=1]="NotEquals",t[t.Identical=2]="Identical",t[t.NotIdentical=3]="NotIdentical",t[t.Minus=4]="Minus",t[t.Plus=5]="Plus",t[t.Divide=6]="Divide",t[t.Multiply=7]="Multiply",t[t.Modulo=8]="Modulo",t[t.And=9]="And",t[t.Or=10]="Or",t[t.BitwiseOr=11]="BitwiseOr",t[t.BitwiseAnd=12]="BitwiseAnd",t[t.Lower=13]="Lower",t[t.LowerEquals=14]="LowerEquals",t[t.Bigger=15]="Bigger",t[t.BiggerEquals=16]="BiggerEquals",t[t.NullishCoalesce=17]="NullishCoalesce"})(_||(_={}));function Bs(t,e){return t==null||e==null?t==e:t.isEquivalent(e)}function Ds(t,e,n){let s=t.length;if(s!==e.length)return!1;for(let r=0;r<s;r++)if(!n(t[r],e[r]))return!1;return!0}function tt(t,e){return Ds(t,e,(n,s)=>n.isEquivalent(s))}var k=class{type;sourceSpan;constructor(e,n){this.type=e||null,this.sourceSpan=n||null}prop(e,n){return new gt(this,e,null,n)}key(e,n,s){return new vt(this,e,n,s)}callFn(e,n,s){return new Xe(this,e,null,n,s)}instantiate(e,n,s){return new ft(this,e,n,s)}conditional(e,n=null,s){return new mt(this,e,n,null,s)}equals(e,n){return new C(_.Equals,this,e,null,n)}notEquals(e,n){return new C(_.NotEquals,this,e,null,n)}identical(e,n){return new C(_.Identical,this,e,null,n)}notIdentical(e,n){return new C(_.NotIdentical,this,e,null,n)}minus(e,n){return new C(_.Minus,this,e,null,n)}plus(e,n){return new C(_.Plus,this,e,null,n)}divide(e,n){return new C(_.Divide,this,e,null,n)}multiply(e,n){return new C(_.Multiply,this,e,null,n)}modulo(e,n){return new C(_.Modulo,this,e,null,n)}and(e,n){return new C(_.And,this,e,null,n)}bitwiseOr(e,n,s=!0){return new C(_.BitwiseOr,this,e,null,n,s)}bitwiseAnd(e,n,s=!0){return new C(_.BitwiseAnd,this,e,null,n,s)}or(e,n){return new C(_.Or,this,e,null,n)}lower(e,n){return new C(_.Lower,this,e,null,n)}lowerEquals(e,n){return new C(_.LowerEquals,this,e,null,n)}bigger(e,n){return new C(_.Bigger,this,e,null,n)}biggerEquals(e,n){return new C(_.BiggerEquals,this,e,null,n)}isBlank(e){return this.equals(TYPED_NULL_EXPR,e)}nullishCoalesce(e,n){return new C(_.NullishCoalesce,this,e,null,n)}toStmt(){return new xt(this,null)}},Ge=class t extends k{name;constructor(e,n,s){super(n,s),this.name=e}isEquivalent(e){return e instanceof t&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadVarExpr(this,n)}clone(){return new t(this.name,this.type,this.sourceSpan)}set(e){return new ut(this.name,e,null,this.sourceSpan)}},ct=class t extends k{expr;constructor(e,n,s){super(n,s),this.expr=e}visitExpression(e,n){return e.visitTypeofExpr(this,n)}isEquivalent(e){return e instanceof t&&e.expr.isEquivalent(this.expr)}isConstant(){return this.expr.isConstant()}clone(){return new t(this.expr.clone())}};var ut=class t extends k{name;value;constructor(e,n,s,r){super(s||n.type,r),this.name=e,this.value=n}isEquivalent(e){return e instanceof t&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteVarExpr(this,n)}clone(){return new t(this.name,this.value.clone(),this.type,this.sourceSpan)}toDeclStmt(e,n){return new wt(this.name,this.value,e,n,this.sourceSpan)}toConstDecl(){return this.toDeclStmt(Rs,Ee.Final)}},pt=class t extends k{receiver;index;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.index=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWriteKeyExpr(this,n)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.value.clone(),this.type,this.sourceSpan)}},ht=class t extends k{receiver;name;value;constructor(e,n,s,r,o){super(r||s.type,o),this.receiver=e,this.name=n,this.value=s}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name&&this.value.isEquivalent(e.value)}isConstant(){return!1}visitExpression(e,n){return e.visitWritePropExpr(this,n)}clone(){return new t(this.receiver.clone(),this.name,this.value.clone(),this.type,this.sourceSpan)}},Xe=class t extends k{fn;args;pure;constructor(e,n,s,r,o=!1){super(s,r),this.fn=e,this.args=n,this.pure=o}get receiver(){return this.fn}isEquivalent(e){return e instanceof t&&this.fn.isEquivalent(e.fn)&&tt(this.args,e.args)&&this.pure===e.pure}isConstant(){return!1}visitExpression(e,n){return e.visitInvokeFunctionExpr(this,n)}clone(){return new t(this.fn.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan,this.pure)}};var ft=class t extends k{classExpr;args;constructor(e,n,s,r){super(s,r),this.classExpr=e,this.args=n}isEquivalent(e){return e instanceof t&&this.classExpr.isEquivalent(e.classExpr)&&tt(this.args,e.args)}isConstant(){return!1}visitExpression(e,n){return e.visitInstantiateExpr(this,n)}clone(){return new t(this.classExpr.clone(),this.args.map(e=>e.clone()),this.type,this.sourceSpan)}},Je=class t extends k{value;constructor(e,n,s){super(n,s),this.value=e}isEquivalent(e){return e instanceof t&&this.value===e.value}isConstant(){return!0}visitExpression(e,n){return e.visitLiteralExpr(this,n)}clone(){return new t(this.value,this.type,this.sourceSpan)}};var dt=class t extends k{value;typeParams;constructor(e,n,s=null,r){super(n,r),this.value=e,this.typeParams=s}isEquivalent(e){return e instanceof t&&this.value.name===e.value.name&&this.value.moduleName===e.value.moduleName}isConstant(){return!1}visitExpression(e,n){return e.visitExternalExpr(this,n)}clone(){return new t(this.value,this.type,this.typeParams,this.sourceSpan)}};var mt=class t extends k{condition;falseCase;trueCase;constructor(e,n,s=null,r,o){super(r||n.type,o),this.condition=e,this.falseCase=s,this.trueCase=n}isEquivalent(e){return e instanceof t&&this.condition.isEquivalent(e.condition)&&this.trueCase.isEquivalent(e.trueCase)&&Bs(this.falseCase,e.falseCase)}isConstant(){return!1}visitExpression(e,n){return e.visitConditionalExpr(this,n)}clone(){var e;return new t(this.condition.clone(),this.trueCase.clone(),(e=this.falseCase)==null?void 0:e.clone(),this.type,this.sourceSpan)}};var C=class t extends k{operator;rhs;parens;lhs;constructor(e,n,s,r,o,a=!0){super(r||n.type,o),this.operator=e,this.rhs=s,this.parens=a,this.lhs=n}isEquivalent(e){return e instanceof t&&this.operator===e.operator&&this.lhs.isEquivalent(e.lhs)&&this.rhs.isEquivalent(e.rhs)}isConstant(){return!1}visitExpression(e,n){return e.visitBinaryOperatorExpr(this,n)}clone(){return new t(this.operator,this.lhs.clone(),this.rhs.clone(),this.type,this.sourceSpan,this.parens)}},gt=class t extends k{receiver;name;constructor(e,n,s,r){super(s,r),this.receiver=e,this.name=n}get index(){return this.name}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.name===e.name}isConstant(){return!1}visitExpression(e,n){return e.visitReadPropExpr(this,n)}set(e){return new ht(this.receiver,this.name,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.name,this.type,this.sourceSpan)}},vt=class t extends k{receiver;index;constructor(e,n,s,r){super(s,r),this.receiver=e,this.index=n}isEquivalent(e){return e instanceof t&&this.receiver.isEquivalent(e.receiver)&&this.index.isEquivalent(e.index)}isConstant(){return!1}visitExpression(e,n){return e.visitReadKeyExpr(this,n)}set(e){return new pt(this.receiver,this.index,e,null,this.sourceSpan)}clone(){return new t(this.receiver.clone(),this.index.clone(),this.type,this.sourceSpan)}},Ye=class t extends k{entries;constructor(e,n,s){super(n,s),this.entries=e}isConstant(){return this.entries.every(e=>e.isConstant())}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}visitExpression(e,n){return e.visitLiteralArrayExpr(this,n)}clone(){return new t(this.entries.map(e=>e.clone()),this.type,this.sourceSpan)}};var Qe=class t extends k{entries;valueType=null;constructor(e,n,s){super(n,s),this.entries=e,n&&(this.valueType=n.valueType)}isEquivalent(e){return e instanceof t&&tt(this.entries,e.entries)}isConstant(){return this.entries.every(e=>e.value.isConstant())}visitExpression(e,n){return e.visitLiteralMapExpr(this,n)}clone(){let e=this.entries.map(n=>n.clone());return new t(e,this.type,this.sourceSpan)}};var Ee;(function(t){t[t.None=0]="None",t[t.Final=1]="Final",t[t.Private=2]="Private",t[t.Exported=4]="Exported",t[t.Static=8]="Static"})(Ee||(Ee={}));var Ke=class{modifiers;sourceSpan;leadingComments;constructor(e=Ee.None,n=null,s){this.modifiers=e,this.sourceSpan=n,this.leadingComments=s}hasModifier(e){return(this.modifiers&e)!==0}addLeadingComment(e){this.leadingComments=this.leadingComments??[],this.leadingComments.push(e)}},wt=class t extends Ke{name;value;type;constructor(e,n,s,r,o,a){super(r,o,a),this.name=e,this.value=n,this.type=s||n&&n.type||null}isEquivalent(e){return e instanceof t&&this.name===e.name&&(this.value?!!e.value&&this.value.isEquivalent(e.value):!e.value)}visitStatement(e,n){return e.visitDeclareVarStmt(this,n)}};var xt=class t extends Ke{expr;constructor(e,n,s){super(Ee.None,n,s),this.expr=e}isEquivalent(e){return e instanceof t&&this.expr.isEquivalent(e.expr)}visitStatement(e,n){return e.visitExpressionStmt(this,n)}};function Os(t,e,n){return new Ge(t,e,n)}var Xr=Os("<unknown>");var rn=class t{static INSTANCE=new t;keyOf(e){if(e instanceof Je&&typeof e.value=="string")return`"${e.value}"`;if(e instanceof Je)return String(e.value);if(e instanceof Ye){let n=[];for(let s of e.entries)n.push(this.keyOf(s));return`[${n.join(",")}]`}else if(e instanceof Qe){let n=[];for(let s of e.entries){let r=s.key;s.quoted&&(r=`"${r}"`),n.push(r+":"+this.keyOf(s.value))}return`{${n.join(",")}}`}else{if(e instanceof dt)return`import("${e.value.moduleName}", ${e.value.name})`;if(e instanceof Ge)return`read(${e.name})`;if(e instanceof ct)return`typeof(${this.keyOf(e.expr)})`;throw new Error(`${this.constructor.name} does not handle expressions of type ${e.constructor.name}`)}}};var i="@angular/core",P=class{static NEW_METHOD="factory";static TRANSFORM_METHOD="transform";static PATCH_DEPS="patchedDeps";static core={name:null,moduleName:i};static namespaceHTML={name:"\u0275\u0275namespaceHTML",moduleName:i};static namespaceMathML={name:"\u0275\u0275namespaceMathML",moduleName:i};static namespaceSVG={name:"\u0275\u0275namespaceSVG",moduleName:i};static element={name:"\u0275\u0275element",moduleName:i};static elementStart={name:"\u0275\u0275elementStart",moduleName:i};static elementEnd={name:"\u0275\u0275elementEnd",moduleName:i};static advance={name:"\u0275\u0275advance",moduleName:i};static syntheticHostProperty={name:"\u0275\u0275syntheticHostProperty",moduleName:i};static syntheticHostListener={name:"\u0275\u0275syntheticHostListener",moduleName:i};static attribute={name:"\u0275\u0275attribute",moduleName:i};static attributeInterpolate1={name:"\u0275\u0275attributeInterpolate1",moduleName:i};static attributeInterpolate2={name:"\u0275\u0275attributeInterpolate2",moduleName:i};static attributeInterpolate3={name:"\u0275\u0275attributeInterpolate3",moduleName:i};static attributeInterpolate4={name:"\u0275\u0275attributeInterpolate4",moduleName:i};static attributeInterpolate5={name:"\u0275\u0275attributeInterpolate5",moduleName:i};static attributeInterpolate6={name:"\u0275\u0275attributeInterpolate6",moduleName:i};static attributeInterpolate7={name:"\u0275\u0275attributeInterpolate7",moduleName:i};static attributeInterpolate8={name:"\u0275\u0275attributeInterpolate8",moduleName:i};static attributeInterpolateV={name:"\u0275\u0275attributeInterpolateV",moduleName:i};static classProp={name:"\u0275\u0275classProp",moduleName:i};static elementContainerStart={name:"\u0275\u0275elementContainerStart",moduleName:i};static elementContainerEnd={name:"\u0275\u0275elementContainerEnd",moduleName:i};static elementContainer={name:"\u0275\u0275elementContainer",moduleName:i};static styleMap={name:"\u0275\u0275styleMap",moduleName:i};static styleMapInterpolate1={name:"\u0275\u0275styleMapInterpolate1",moduleName:i};static styleMapInterpolate2={name:"\u0275\u0275styleMapInterpolate2",moduleName:i};static styleMapInterpolate3={name:"\u0275\u0275styleMapInterpolate3",moduleName:i};static styleMapInterpolate4={name:"\u0275\u0275styleMapInterpolate4",moduleName:i};static styleMapInterpolate5={name:"\u0275\u0275styleMapInterpolate5",moduleName:i};static styleMapInterpolate6={name:"\u0275\u0275styleMapInterpolate6",moduleName:i};static styleMapInterpolate7={name:"\u0275\u0275styleMapInterpolate7",moduleName:i};static styleMapInterpolate8={name:"\u0275\u0275styleMapInterpolate8",moduleName:i};static styleMapInterpolateV={name:"\u0275\u0275styleMapInterpolateV",moduleName:i};static classMap={name:"\u0275\u0275classMap",moduleName:i};static classMapInterpolate1={name:"\u0275\u0275classMapInterpolate1",moduleName:i};static classMapInterpolate2={name:"\u0275\u0275classMapInterpolate2",moduleName:i};static classMapInterpolate3={name:"\u0275\u0275classMapInterpolate3",moduleName:i};static classMapInterpolate4={name:"\u0275\u0275classMapInterpolate4",moduleName:i};static classMapInterpolate5={name:"\u0275\u0275classMapInterpolate5",moduleName:i};static classMapInterpolate6={name:"\u0275\u0275classMapInterpolate6",moduleName:i};static classMapInterpolate7={name:"\u0275\u0275classMapInterpolate7",moduleName:i};static classMapInterpolate8={name:"\u0275\u0275classMapInterpolate8",moduleName:i};static classMapInterpolateV={name:"\u0275\u0275classMapInterpolateV",moduleName:i};static styleProp={name:"\u0275\u0275styleProp",moduleName:i};static stylePropInterpolate1={name:"\u0275\u0275stylePropInterpolate1",moduleName:i};static stylePropInterpolate2={name:"\u0275\u0275stylePropInterpolate2",moduleName:i};static stylePropInterpolate3={name:"\u0275\u0275stylePropInterpolate3",moduleName:i};static stylePropInterpolate4={name:"\u0275\u0275stylePropInterpolate4",moduleName:i};static stylePropInterpolate5={name:"\u0275\u0275stylePropInterpolate5",moduleName:i};static stylePropInterpolate6={name:"\u0275\u0275stylePropInterpolate6",moduleName:i};static stylePropInterpolate7={name:"\u0275\u0275stylePropInterpolate7",moduleName:i};static stylePropInterpolate8={name:"\u0275\u0275stylePropInterpolate8",moduleName:i};static stylePropInterpolateV={name:"\u0275\u0275stylePropInterpolateV",moduleName:i};static nextContext={name:"\u0275\u0275nextContext",moduleName:i};static resetView={name:"\u0275\u0275resetView",moduleName:i};static templateCreate={name:"\u0275\u0275template",moduleName:i};static defer={name:"\u0275\u0275defer",moduleName:i};static deferWhen={name:"\u0275\u0275deferWhen",moduleName:i};static deferOnIdle={name:"\u0275\u0275deferOnIdle",moduleName:i};static deferOnImmediate={name:"\u0275\u0275deferOnImmediate",moduleName:i};static deferOnTimer={name:"\u0275\u0275deferOnTimer",moduleName:i};static deferOnHover={name:"\u0275\u0275deferOnHover",moduleName:i};static deferOnInteraction={name:"\u0275\u0275deferOnInteraction",moduleName:i};static deferOnViewport={name:"\u0275\u0275deferOnViewport",moduleName:i};static deferPrefetchWhen={name:"\u0275\u0275deferPrefetchWhen",moduleName:i};static deferPrefetchOnIdle={name:"\u0275\u0275deferPrefetchOnIdle",moduleName:i};static deferPrefetchOnImmediate={name:"\u0275\u0275deferPrefetchOnImmediate",moduleName:i};static deferPrefetchOnTimer={name:"\u0275\u0275deferPrefetchOnTimer",moduleName:i};static deferPrefetchOnHover={name:"\u0275\u0275deferPrefetchOnHover",moduleName:i};static deferPrefetchOnInteraction={name:"\u0275\u0275deferPrefetchOnInteraction",moduleName:i};static deferPrefetchOnViewport={name:"\u0275\u0275deferPrefetchOnViewport",moduleName:i};static deferHydrateWhen={name:"\u0275\u0275deferHydrateWhen",moduleName:i};static deferHydrateNever={name:"\u0275\u0275deferHydrateNever",moduleName:i};static deferHydrateOnIdle={name:"\u0275\u0275deferHydrateOnIdle",moduleName:i};static deferHydrateOnImmediate={name:"\u0275\u0275deferHydrateOnImmediate",moduleName:i};static deferHydrateOnTimer={name:"\u0275\u0275deferHydrateOnTimer",moduleName:i};static deferHydrateOnHover={name:"\u0275\u0275deferHydrateOnHover",moduleName:i};static deferHydrateOnInteraction={name:"\u0275\u0275deferHydrateOnInteraction",moduleName:i};static deferHydrateOnViewport={name:"\u0275\u0275deferHydrateOnViewport",moduleName:i};static deferEnableTimerScheduling={name:"\u0275\u0275deferEnableTimerScheduling",moduleName:i};static conditional={name:"\u0275\u0275conditional",moduleName:i};static repeater={name:"\u0275\u0275repeater",moduleName:i};static repeaterCreate={name:"\u0275\u0275repeaterCreate",moduleName:i};static repeaterTrackByIndex={name:"\u0275\u0275repeaterTrackByIndex",moduleName:i};static repeaterTrackByIdentity={name:"\u0275\u0275repeaterTrackByIdentity",moduleName:i};static componentInstance={name:"\u0275\u0275componentInstance",moduleName:i};static text={name:"\u0275\u0275text",moduleName:i};static enableBindings={name:"\u0275\u0275enableBindings",moduleName:i};static disableBindings={name:"\u0275\u0275disableBindings",moduleName:i};static getCurrentView={name:"\u0275\u0275getCurrentView",moduleName:i};static textInterpolate={name:"\u0275\u0275textInterpolate",moduleName:i};static textInterpolate1={name:"\u0275\u0275textInterpolate1",moduleName:i};static textInterpolate2={name:"\u0275\u0275textInterpolate2",moduleName:i};static textInterpolate3={name:"\u0275\u0275textInterpolate3",moduleName:i};static textInterpolate4={name:"\u0275\u0275textInterpolate4",moduleName:i};static textInterpolate5={name:"\u0275\u0275textInterpolate5",moduleName:i};static textInterpolate6={name:"\u0275\u0275textInterpolate6",moduleName:i};static textInterpolate7={name:"\u0275\u0275textInterpolate7",moduleName:i};static textInterpolate8={name:"\u0275\u0275textInterpolate8",moduleName:i};static textInterpolateV={name:"\u0275\u0275textInterpolateV",moduleName:i};static restoreView={name:"\u0275\u0275restoreView",moduleName:i};static pureFunction0={name:"\u0275\u0275pureFunction0",moduleName:i};static pureFunction1={name:"\u0275\u0275pureFunction1",moduleName:i};static pureFunction2={name:"\u0275\u0275pureFunction2",moduleName:i};static pureFunction3={name:"\u0275\u0275pureFunction3",moduleName:i};static pureFunction4={name:"\u0275\u0275pureFunction4",moduleName:i};static pureFunction5={name:"\u0275\u0275pureFunction5",moduleName:i};static pureFunction6={name:"\u0275\u0275pureFunction6",moduleName:i};static pureFunction7={name:"\u0275\u0275pureFunction7",moduleName:i};static pureFunction8={name:"\u0275\u0275pureFunction8",moduleName:i};static pureFunctionV={name:"\u0275\u0275pureFunctionV",moduleName:i};static pipeBind1={name:"\u0275\u0275pipeBind1",moduleName:i};static pipeBind2={name:"\u0275\u0275pipeBind2",moduleName:i};static pipeBind3={name:"\u0275\u0275pipeBind3",moduleName:i};static pipeBind4={name:"\u0275\u0275pipeBind4",moduleName:i};static pipeBindV={name:"\u0275\u0275pipeBindV",moduleName:i};static hostProperty={name:"\u0275\u0275hostProperty",moduleName:i};static property={name:"\u0275\u0275property",moduleName:i};static propertyInterpolate={name:"\u0275\u0275propertyInterpolate",moduleName:i};static propertyInterpolate1={name:"\u0275\u0275propertyInterpolate1",moduleName:i};static propertyInterpolate2={name:"\u0275\u0275propertyInterpolate2",moduleName:i};static propertyInterpolate3={name:"\u0275\u0275propertyInterpolate3",moduleName:i};static propertyInterpolate4={name:"\u0275\u0275propertyInterpolate4",moduleName:i};static propertyInterpolate5={name:"\u0275\u0275propertyInterpolate5",moduleName:i};static propertyInterpolate6={name:"\u0275\u0275propertyInterpolate6",moduleName:i};static propertyInterpolate7={name:"\u0275\u0275propertyInterpolate7",moduleName:i};static propertyInterpolate8={name:"\u0275\u0275propertyInterpolate8",moduleName:i};static propertyInterpolateV={name:"\u0275\u0275propertyInterpolateV",moduleName:i};static i18n={name:"\u0275\u0275i18n",moduleName:i};static i18nAttributes={name:"\u0275\u0275i18nAttributes",moduleName:i};static i18nExp={name:"\u0275\u0275i18nExp",moduleName:i};static i18nStart={name:"\u0275\u0275i18nStart",moduleName:i};static i18nEnd={name:"\u0275\u0275i18nEnd",moduleName:i};static i18nApply={name:"\u0275\u0275i18nApply",moduleName:i};static i18nPostprocess={name:"\u0275\u0275i18nPostprocess",moduleName:i};static pipe={name:"\u0275\u0275pipe",moduleName:i};static projection={name:"\u0275\u0275projection",moduleName:i};static projectionDef={name:"\u0275\u0275projectionDef",moduleName:i};static reference={name:"\u0275\u0275reference",moduleName:i};static inject={name:"\u0275\u0275inject",moduleName:i};static injectAttribute={name:"\u0275\u0275injectAttribute",moduleName:i};static directiveInject={name:"\u0275\u0275directiveInject",moduleName:i};static invalidFactory={name:"\u0275\u0275invalidFactory",moduleName:i};static invalidFactoryDep={name:"\u0275\u0275invalidFactoryDep",moduleName:i};static templateRefExtractor={name:"\u0275\u0275templateRefExtractor",moduleName:i};static forwardRef={name:"forwardRef",moduleName:i};static resolveForwardRef={name:"resolveForwardRef",moduleName:i};static replaceMetadata={name:"\u0275\u0275replaceMetadata",moduleName:i};static \u0275\u0275defineInjectable={name:"\u0275\u0275defineInjectable",moduleName:i};static declareInjectable={name:"\u0275\u0275ngDeclareInjectable",moduleName:i};static InjectableDeclaration={name:"\u0275\u0275InjectableDeclaration",moduleName:i};static resolveWindow={name:"\u0275\u0275resolveWindow",moduleName:i};static resolveDocument={name:"\u0275\u0275resolveDocument",moduleName:i};static resolveBody={name:"\u0275\u0275resolveBody",moduleName:i};static getComponentDepsFactory={name:"\u0275\u0275getComponentDepsFactory",moduleName:i};static defineComponent={name:"\u0275\u0275defineComponent",moduleName:i};static declareComponent={name:"\u0275\u0275ngDeclareComponent",moduleName:i};static setComponentScope={name:"\u0275\u0275setComponentScope",moduleName:i};static ChangeDetectionStrategy={name:"ChangeDetectionStrategy",moduleName:i};static ViewEncapsulation={name:"ViewEncapsulation",moduleName:i};static ComponentDeclaration={name:"\u0275\u0275ComponentDeclaration",moduleName:i};static FactoryDeclaration={name:"\u0275\u0275FactoryDeclaration",moduleName:i};static declareFactory={name:"\u0275\u0275ngDeclareFactory",moduleName:i};static FactoryTarget={name:"\u0275\u0275FactoryTarget",moduleName:i};static defineDirective={name:"\u0275\u0275defineDirective",moduleName:i};static declareDirective={name:"\u0275\u0275ngDeclareDirective",moduleName:i};static DirectiveDeclaration={name:"\u0275\u0275DirectiveDeclaration",moduleName:i};static InjectorDef={name:"\u0275\u0275InjectorDef",moduleName:i};static InjectorDeclaration={name:"\u0275\u0275InjectorDeclaration",moduleName:i};static defineInjector={name:"\u0275\u0275defineInjector",moduleName:i};static declareInjector={name:"\u0275\u0275ngDeclareInjector",moduleName:i};static NgModuleDeclaration={name:"\u0275\u0275NgModuleDeclaration",moduleName:i};static ModuleWithProviders={name:"ModuleWithProviders",moduleName:i};static defineNgModule={name:"\u0275\u0275defineNgModule",moduleName:i};static declareNgModule={name:"\u0275\u0275ngDeclareNgModule",moduleName:i};static setNgModuleScope={name:"\u0275\u0275setNgModuleScope",moduleName:i};static registerNgModuleType={name:"\u0275\u0275registerNgModuleType",moduleName:i};static PipeDeclaration={name:"\u0275\u0275PipeDeclaration",moduleName:i};static definePipe={name:"\u0275\u0275definePipe",moduleName:i};static declarePipe={name:"\u0275\u0275ngDeclarePipe",moduleName:i};static declareClassMetadata={name:"\u0275\u0275ngDeclareClassMetadata",moduleName:i};static declareClassMetadataAsync={name:"\u0275\u0275ngDeclareClassMetadataAsync",moduleName:i};static setClassMetadata={name:"\u0275setClassMetadata",moduleName:i};static setClassMetadataAsync={name:"\u0275setClassMetadataAsync",moduleName:i};static setClassDebugInfo={name:"\u0275setClassDebugInfo",moduleName:i};static queryRefresh={name:"\u0275\u0275queryRefresh",moduleName:i};static viewQuery={name:"\u0275\u0275viewQuery",moduleName:i};static loadQuery={name:"\u0275\u0275loadQuery",moduleName:i};static contentQuery={name:"\u0275\u0275contentQuery",moduleName:i};static viewQuerySignal={name:"\u0275\u0275viewQuerySignal",moduleName:i};static contentQuerySignal={name:"\u0275\u0275contentQuerySignal",moduleName:i};static queryAdvance={name:"\u0275\u0275queryAdvance",moduleName:i};static twoWayProperty={name:"\u0275\u0275twoWayProperty",moduleName:i};static twoWayBindingSet={name:"\u0275\u0275twoWayBindingSet",moduleName:i};static twoWayListener={name:"\u0275\u0275twoWayListener",moduleName:i};static declareLet={name:"\u0275\u0275declareLet",moduleName:i};static storeLet={name:"\u0275\u0275storeLet",moduleName:i};static readContextLet={name:"\u0275\u0275readContextLet",moduleName:i};static attachSourceLocations={name:"\u0275\u0275attachSourceLocations",moduleName:i};static NgOnChangesFeature={name:"\u0275\u0275NgOnChangesFeature",moduleName:i};static InheritDefinitionFeature={name:"\u0275\u0275InheritDefinitionFeature",moduleName:i};static CopyDefinitionFeature={name:"\u0275\u0275CopyDefinitionFeature",moduleName:i};static ProvidersFeature={name:"\u0275\u0275ProvidersFeature",moduleName:i};static HostDirectivesFeature={name:"\u0275\u0275HostDirectivesFeature",moduleName:i};static InputTransformsFeatureFeature={name:"\u0275\u0275InputTransformsFeature",moduleName:i};static ExternalStylesFeature={name:"\u0275\u0275ExternalStylesFeature",moduleName:i};static listener={name:"\u0275\u0275listener",moduleName:i};static getInheritedFactory={name:"\u0275\u0275getInheritedFactory",moduleName:i};static sanitizeHtml={name:"\u0275\u0275sanitizeHtml",moduleName:i};static sanitizeStyle={name:"\u0275\u0275sanitizeStyle",moduleName:i};static sanitizeResourceUrl={name:"\u0275\u0275sanitizeResourceUrl",moduleName:i};static sanitizeScript={name:"\u0275\u0275sanitizeScript",moduleName:i};static sanitizeUrl={name:"\u0275\u0275sanitizeUrl",moduleName:i};static sanitizeUrlOrResourceUrl={name:"\u0275\u0275sanitizeUrlOrResourceUrl",moduleName:i};static trustConstantHtml={name:"\u0275\u0275trustConstantHtml",moduleName:i};static trustConstantResourceUrl={name:"\u0275\u0275trustConstantResourceUrl",moduleName:i};static validateIframeAttribute={name:"\u0275\u0275validateIframeAttribute",moduleName:i};static InputSignalBrandWriteType={name:"\u0275INPUT_SIGNAL_BRAND_WRITE_TYPE",moduleName:i};static UnwrapDirectiveSignalInputs={name:"\u0275UnwrapDirectiveSignalInputs",moduleName:i};static unwrapWritableSignal={name:"\u0275unwrapWritableSignal",moduleName:i}};var St=class{full;major;minor;patch;constructor(e){this.full=e;let n=e.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}};var on;(function(t){t[t.Class=0]="Class",t[t.Function=1]="Function"})(on||(on={}));var an;(function(t){t[t.Directive=0]="Directive",t[t.Component=1]="Component",t[t.Injectable=2]="Injectable",t[t.Pipe=3]="Pipe",t[t.NgModule=4]="NgModule"})(an||(an={}));var ye=class{input;errLocation;ctxLocation;message;constructor(e,n,s,r){this.input=n,this.errLocation=s,this.ctxLocation=r,this.message=`Parser Error: ${e} ${s} [${n}] in ${r}`}},G=class{start;end;constructor(e,n){this.start=e,this.end=n}toAbsolute(e){return new O(e+this.start,e+this.end)}},E=class{span;sourceSpan;constructor(e,n){this.span=e,this.sourceSpan=n}toString(){return"AST"}},se=class extends E{nameSpan;constructor(e,n,s){super(e,n),this.nameSpan=s}},b=class extends E{visit(e,n=null){}},X=class extends E{visit(e,n=null){return e.visitImplicitReceiver(this,n)}},Et=class extends X{visit(e,n=null){var s;return(s=e.visitThisReceiver)==null?void 0:s.call(e,this,n)}},_e=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitChain(this,n)}},Ce=class extends E{condition;trueExp;falseExp;constructor(e,n,s,r,o){super(e,n),this.condition=s,this.trueExp=r,this.falseExp=o}visit(e,n=null){return e.visitConditional(this,n)}},re=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitPropertyRead(this,n)}},Te=class extends se{receiver;name;value;constructor(e,n,s,r,o,a){super(e,n,s),this.receiver=r,this.name=o,this.value=a}visit(e,n=null){return e.visitPropertyWrite(this,n)}},ie=class extends se{receiver;name;constructor(e,n,s,r,o){super(e,n,s),this.receiver=r,this.name=o}visit(e,n=null){return e.visitSafePropertyRead(this,n)}},ke=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitKeyedRead(this,n)}},oe=class extends E{receiver;key;constructor(e,n,s,r){super(e,n),this.receiver=s,this.key=r}visit(e,n=null){return e.visitSafeKeyedRead(this,n)}},Ie=class extends E{receiver;key;value;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.key=r,this.value=o}visit(e,n=null){return e.visitKeyedWrite(this,n)}},be=class extends se{exp;name;args;constructor(e,n,s,r,o,a){super(e,n,a),this.exp=s,this.name=r,this.args=o}visit(e,n=null){return e.visitPipe(this,n)}},N=class extends E{value;constructor(e,n,s){super(e,n),this.value=s}visit(e,n=null){return e.visitLiteralPrimitive(this,n)}},Ne=class extends E{expressions;constructor(e,n,s){super(e,n),this.expressions=s}visit(e,n=null){return e.visitLiteralArray(this,n)}},Ae=class extends E{keys;values;constructor(e,n,s,r){super(e,n),this.keys=s,this.values=r}visit(e,n=null){return e.visitLiteralMap(this,n)}},Pe=class extends E{strings;expressions;constructor(e,n,s,r){super(e,n),this.strings=s,this.expressions=r}visit(e,n=null){return e.visitInterpolation(this,n)}},A=class extends E{operation;left;right;constructor(e,n,s,r,o){super(e,n),this.operation=s,this.left=r,this.right=o}visit(e,n=null){return e.visitBinary(this,n)}},ae=class t extends A{operator;expr;left=null;right=null;operation=null;static createMinus(e,n,s){return new t(e,n,"-",s,"-",new N(e,n,0),s)}static createPlus(e,n,s){return new t(e,n,"+",s,"-",s,new N(e,n,0))}constructor(e,n,s,r,o,a,l){super(e,n,o,a,l),this.operator=s,this.expr=r}visit(e,n=null){return e.visitUnary!==void 0?e.visitUnary(this,n):e.visitBinary(this,n)}},Le=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitPrefixNot(this,n)}},Me=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitTypeofExpression(this,n)}},$e=class extends E{expression;constructor(e,n,s){super(e,n),this.expression=s}visit(e,n=null){return e.visitNonNullAssert(this,n)}},Re=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitCall(this,n)}},le=class extends E{receiver;args;argumentSpan;constructor(e,n,s,r,o){super(e,n),this.receiver=s,this.args=r,this.argumentSpan=o}visit(e,n=null){return e.visitSafeCall(this,n)}},O=class{start;end;constructor(e,n){this.start=e,this.end=n}},W=class extends E{ast;source;location;errors;constructor(e,n,s,r,o){super(new G(0,n===null?0:n.length),new O(r,n===null?r:r+n.length)),this.ast=e,this.source=n,this.location=s,this.errors=o}visit(e,n=null){return e.visitASTWithSource?e.visitASTWithSource(this,n):this.ast.visit(e,n)}toString(){return`${this.source} in ${this.location}`}},ce=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},Be=class{sourceSpan;key;value;constructor(e,n,s){this.sourceSpan=e,this.key=n,this.value=s}},yt=class{visit(e,n){e.visit(this,n)}visitUnary(e,n){this.visit(e.expr,n)}visitBinary(e,n){this.visit(e.left,n),this.visit(e.right,n)}visitChain(e,n){this.visitAll(e.expressions,n)}visitConditional(e,n){this.visit(e.condition,n),this.visit(e.trueExp,n),this.visit(e.falseExp,n)}visitPipe(e,n){this.visit(e.exp,n),this.visitAll(e.args,n)}visitImplicitReceiver(e,n){}visitThisReceiver(e,n){}visitInterpolation(e,n){this.visitAll(e.expressions,n)}visitKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitKeyedWrite(e,n){this.visit(e.receiver,n),this.visit(e.key,n),this.visit(e.value,n)}visitLiteralArray(e,n){this.visitAll(e.expressions,n)}visitLiteralMap(e,n){this.visitAll(e.values,n)}visitLiteralPrimitive(e,n){}visitPrefixNot(e,n){this.visit(e.expression,n)}visitTypeofExpression(e,n){this.visit(e.expression,n)}visitNonNullAssert(e,n){this.visit(e.expression,n)}visitPropertyRead(e,n){this.visit(e.receiver,n)}visitPropertyWrite(e,n){this.visit(e.receiver,n),this.visit(e.value,n)}visitSafePropertyRead(e,n){this.visit(e.receiver,n)}visitSafeKeyedRead(e,n){this.visit(e.receiver,n),this.visit(e.key,n)}visitCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitSafeCall(e,n){this.visit(e.receiver,n),this.visitAll(e.args,n)}visitAll(e,n){for(let s of e)this.visit(s,n)}};var ln;(function(t){t[t.DEFAULT=0]="DEFAULT",t[t.LITERAL_ATTR=1]="LITERAL_ATTR",t[t.ANIMATION=2]="ANIMATION",t[t.TWO_WAY=3]="TWO_WAY"})(ln||(ln={}));var cn;(function(t){t[t.Regular=0]="Regular",t[t.Animation=1]="Animation",t[t.TwoWay=2]="TwoWay"})(cn||(cn={}));var H;(function(t){t[t.Property=0]="Property",t[t.Attribute=1]="Attribute",t[t.Class=2]="Class",t[t.Style=3]="Style",t[t.Animation=4]="Animation",t[t.TwoWay=5]="TwoWay"})(H||(H={}));var un;(function(t){t[t.RAW_TEXT=0]="RAW_TEXT",t[t.ESCAPABLE_RAW_TEXT=1]="ESCAPABLE_RAW_TEXT",t[t.PARSABLE_DATA=2]="PARSABLE_DATA"})(un||(un={}));var Fs=[/@/,/^\s*$/,/[<>]/,/^[{}]$/,/&(#|[a-z])/i,/^\/\//];function Vs(t,e){if(e!=null&&!(Array.isArray(e)&&e.length==2))throw new Error(`Expected '${t}' to be an array, [start, end].`);if(e!=null){let n=e[0],s=e[1];Fs.forEach(r=>{if(r.test(n)||r.test(s))throw new Error(`['${n}', '${s}'] contains unusable interpolation symbol.`)})}}var _t=class t{start;end;static fromArray(e){return e?(Vs("interpolation",e),new t(e[0],e[1])):Z}constructor(e,n){this.start=e,this.end=n}},Z=new _t("{{","}}");var ot=0;var Un=9,Hs=10,Us=11,Ws=12,qs=13,Wn=32,js=33,qn=34,zs=35,jn=36,Gs=37,pn=38,zn=39,je=40,me=41,Xs=42,Gn=43,ge=44,Xn=45,ee=46,Ct=47,te=58,ve=59,Js=60,qe=61,Ys=62,hn=63,Qs=48;var Ks=57,Jn=65,Zs=69;var Yn=90,ze=91,er=92,we=93,tr=94,Mt=95,Qn=97;var nr=101,sr=102,rr=110,ir=114,or=116,ar=117,lr=118;var Kn=122,Tt=123,fn=124,xe=125,Zn=160;var cr=96;function ur(t){return t>=Un&&t<=Wn||t==Zn}function j(t){return Qs<=t&&t<=Ks}function pr(t){return t>=Qn&&t<=Kn||t>=Jn&&t<=Yn}function dn(t){return t===zn||t===qn||t===cr}var mn;(function(t){t[t.WARNING=0]="WARNING",t[t.ERROR=1]="ERROR"})(mn||(mn={}));var gn;(function(t){t[t.Inline=0]="Inline",t[t.SideEffect=1]="SideEffect",t[t.Omit=2]="Omit"})(gn||(gn={}));var vn;(function(t){t[t.Global=0]="Global",t[t.Local=1]="Local"})(vn||(vn={}));var wn;(function(t){t[t.Directive=0]="Directive",t[t.Pipe=1]="Pipe",t[t.NgModule=2]="NgModule"})(wn||(wn={}));var hr="(:(where|is)\\()?";var es="-shadowcsshost",ts="-shadowcsscontext",$t="(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))?([^,{]*)",Jr=new RegExp(es+$t,"gim"),Yr=new RegExp(hr+"("+ts+$t+")","gim"),Qr=new RegExp(ts+$t,"im"),fr=es+"-no-combinator",Kr=new RegExp(`${fr}(?![^(]*\\))`,"g");var ns="%COMMENT%",Zr=new RegExp(ns,"g");var ei=new RegExp(`(\\s*(?:${ns}\\s*)*)([^;\\{\\}]+?)(\\s*)((?:{%BLOCK%}?\\s*;?)|(?:\\s*;))`,"g");var dr="%COMMA_IN_PLACEHOLDER%",mr="%SEMI_IN_PLACEHOLDER%",gr="%COLON_IN_PLACEHOLDER%",ti=new RegExp(dr,"g"),ni=new RegExp(mr,"g"),si=new RegExp(gr,"g");var f;(function(t){t[t.ListEnd=0]="ListEnd",t[t.Statement=1]="Statement",t[t.Variable=2]="Variable",t[t.ElementStart=3]="ElementStart",t[t.Element=4]="Element",t[t.Template=5]="Template",t[t.ElementEnd=6]="ElementEnd",t[t.ContainerStart=7]="ContainerStart",t[t.Container=8]="Container",t[t.ContainerEnd=9]="ContainerEnd",t[t.DisableBindings=10]="DisableBindings",t[t.Conditional=11]="Conditional",t[t.EnableBindings=12]="EnableBindings",t[t.Text=13]="Text",t[t.Listener=14]="Listener",t[t.InterpolateText=15]="InterpolateText",t[t.Binding=16]="Binding",t[t.Property=17]="Property",t[t.StyleProp=18]="StyleProp",t[t.ClassProp=19]="ClassProp",t[t.StyleMap=20]="StyleMap",t[t.ClassMap=21]="ClassMap",t[t.Advance=22]="Advance",t[t.Pipe=23]="Pipe",t[t.Attribute=24]="Attribute",t[t.ExtractedAttribute=25]="ExtractedAttribute",t[t.Defer=26]="Defer",t[t.DeferOn=27]="DeferOn",t[t.DeferWhen=28]="DeferWhen",t[t.I18nMessage=29]="I18nMessage",t[t.HostProperty=30]="HostProperty",t[t.Namespace=31]="Namespace",t[t.ProjectionDef=32]="ProjectionDef",t[t.Projection=33]="Projection",t[t.RepeaterCreate=34]="RepeaterCreate",t[t.Repeater=35]="Repeater",t[t.TwoWayProperty=36]="TwoWayProperty",t[t.TwoWayListener=37]="TwoWayListener",t[t.DeclareLet=38]="DeclareLet",t[t.StoreLet=39]="StoreLet",t[t.I18nStart=40]="I18nStart",t[t.I18n=41]="I18n",t[t.I18nEnd=42]="I18nEnd",t[t.I18nExpression=43]="I18nExpression",t[t.I18nApply=44]="I18nApply",t[t.IcuStart=45]="IcuStart",t[t.IcuEnd=46]="IcuEnd",t[t.IcuPlaceholder=47]="IcuPlaceholder",t[t.I18nContext=48]="I18nContext",t[t.I18nAttributes=49]="I18nAttributes",t[t.SourceLocation=50]="SourceLocation"})(f||(f={}));var J;(function(t){t[t.LexicalRead=0]="LexicalRead",t[t.Context=1]="Context",t[t.TrackContext=2]="TrackContext",t[t.ReadVariable=3]="ReadVariable",t[t.NextContext=4]="NextContext",t[t.Reference=5]="Reference",t[t.StoreLet=6]="StoreLet",t[t.ContextLetReference=7]="ContextLetReference",t[t.GetCurrentView=8]="GetCurrentView",t[t.RestoreView=9]="RestoreView",t[t.ResetView=10]="ResetView",t[t.PureFunctionExpr=11]="PureFunctionExpr",t[t.PureFunctionParameterExpr=12]="PureFunctionParameterExpr",t[t.PipeBinding=13]="PipeBinding",t[t.PipeBindingVariadic=14]="PipeBindingVariadic",t[t.SafePropertyRead=15]="SafePropertyRead",t[t.SafeKeyedRead=16]="SafeKeyedRead",t[t.SafeInvokeFunction=17]="SafeInvokeFunction",t[t.SafeTernaryExpr=18]="SafeTernaryExpr",t[t.EmptyExpr=19]="EmptyExpr",t[t.AssignTemporaryExpr=20]="AssignTemporaryExpr",t[t.ReadTemporaryExpr=21]="ReadTemporaryExpr",t[t.SlotLiteralExpr=22]="SlotLiteralExpr",t[t.ConditionalCase=23]="ConditionalCase",t[t.ConstCollected=24]="ConstCollected",t[t.TwoWayBindingSet=25]="TwoWayBindingSet"})(J||(J={}));var xn;(function(t){t[t.None=0]="None",t[t.AlwaysInline=1]="AlwaysInline"})(xn||(xn={}));var Sn;(function(t){t[t.Context=0]="Context",t[t.Identifier=1]="Identifier",t[t.SavedView=2]="SavedView",t[t.Alias=3]="Alias"})(Sn||(Sn={}));var En;(function(t){t[t.Normal=0]="Normal",t[t.TemplateDefinitionBuilder=1]="TemplateDefinitionBuilder"})(En||(En={}));var U;(function(t){t[t.Attribute=0]="Attribute",t[t.ClassName=1]="ClassName",t[t.StyleProperty=2]="StyleProperty",t[t.Property=3]="Property",t[t.Template=4]="Template",t[t.I18n=5]="I18n",t[t.Animation=6]="Animation",t[t.TwoWayProperty=7]="TwoWayProperty"})(U||(U={}));var yn;(function(t){t[t.Creation=0]="Creation",t[t.Postproccessing=1]="Postproccessing"})(yn||(yn={}));var _n;(function(t){t[t.I18nText=0]="I18nText",t[t.I18nAttribute=1]="I18nAttribute"})(_n||(_n={}));var Cn;(function(t){t[t.None=0]="None",t[t.ElementTag=1]="ElementTag",t[t.TemplateTag=2]="TemplateTag",t[t.OpenTag=4]="OpenTag",t[t.CloseTag=8]="CloseTag",t[t.ExpressionIndex=16]="ExpressionIndex"})(Cn||(Cn={}));var Tn;(function(t){t[t.HTML=0]="HTML",t[t.SVG=1]="SVG",t[t.Math=2]="Math"})(Tn||(Tn={}));var kn;(function(t){t[t.Idle=0]="Idle",t[t.Immediate=1]="Immediate",t[t.Timer=2]="Timer",t[t.Hover=3]="Hover",t[t.Interaction=4]="Interaction",t[t.Viewport=5]="Viewport",t[t.Never=6]="Never"})(kn||(kn={}));var In;(function(t){t[t.RootI18n=0]="RootI18n",t[t.Icu=1]="Icu",t[t.Attr=2]="Attr"})(In||(In={}));var bn;(function(t){t[t.NgTemplate=0]="NgTemplate",t[t.Structural=1]="Structural",t[t.Block=2]="Block"})(bn||(bn={}));var vr=Symbol("ConsumesSlot"),ss=Symbol("DependsOnSlotContext"),Oe=Symbol("ConsumesVars"),Rt=Symbol("UsesVarOffset"),ri={[vr]:!0,numSlotsUsed:1},ii={[ss]:!0},oi={[Oe]:!0};var Ze=class{strings;expressions;i18nPlaceholders;constructor(e,n,s){if(this.strings=e,this.expressions=n,this.i18nPlaceholders=s,s.length!==0&&s.length!==n.length)throw new Error(`Expected ${n.length} placeholders to match interpolation expression count, but got ${s.length}`)}};var Y=class extends k{constructor(e=null){super(null,e)}};var Nn=class t extends Y{target;value;sourceSpan;kind=J.StoreLet;[Oe]=!0;[ss]=!0;constructor(e,n,s){super(),this.target=e,this.value=n,this.sourceSpan=s}visitExpression(){}isEquivalent(e){return e instanceof t&&e.target===this.target&&e.value.isEquivalent(this.value)}isConstant(){return!1}transformInternalExpressions(e,n){this.value=(this.value,void 0)}clone(){return new t(this.target,this.value,this.sourceSpan)}};var An=class t extends Y{kind=J.PureFunctionExpr;[Oe]=!0;[Rt]=!0;varOffset=null;body;args;fn=null;constructor(e,n){super(),this.body=e,this.args=n}visitExpression(e,n){var s;(s=this.body)==null||s.visitExpression(e,n);for(let r of this.args)r.visitExpression(e,n)}isEquivalent(e){return!(e instanceof t)||e.args.length!==this.args.length?!1:e.body!==null&&this.body!==null&&e.body.isEquivalent(this.body)&&e.args.every((n,s)=>n.isEquivalent(this.args[s]))}isConstant(){return!1}transformInternalExpressions(e,n){this.body!==null?this.body=(this.body,n|bt.InChildOperation,void 0):this.fn!==null&&(this.fn=(this.fn,void 0));for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){var n,s;let e=new t(((n=this.body)==null?void 0:n.clone())??null,this.args.map(r=>r.clone()));return e.fn=((s=this.fn)==null?void 0:s.clone())??null,e.varOffset=this.varOffset,e}};var kt=class t extends Y{target;targetSlot;name;args;kind=J.PipeBinding;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r}visitExpression(e,n){for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){let e=new t(this.target,this.targetSlot,this.name,this.args.map(n=>n.clone()));return e.varOffset=this.varOffset,e}},Pn=class t extends Y{target;targetSlot;name;args;numArgs;kind=J.PipeBindingVariadic;[Oe]=!0;[Rt]=!0;varOffset=null;constructor(e,n,s,r,o){super(),this.target=e,this.targetSlot=n,this.name=s,this.args=r,this.numArgs=o}visitExpression(e,n){this.args.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.args=(this.args,void 0)}clone(){let e=new t(this.target,this.targetSlot,this.name,this.args.clone(),this.numArgs);return e.varOffset=this.varOffset,e}};var It=class t extends Y{receiver;args;kind=J.SafeInvokeFunction;constructor(e,n){super(),this.receiver=e,this.args=n}visitExpression(e,n){this.receiver.visitExpression(e,n);for(let s of this.args)s.visitExpression(e,n)}isEquivalent(){return!1}isConstant(){return!1}transformInternalExpressions(e,n){this.receiver=(this.receiver,void 0);for(let s=0;s<this.args.length;s++)this.args[s]=(this.args[s],void 0)}clone(){return new t(this.receiver.clone(),this.args.map(e=>e.clone()))}};var bt;(function(t){t[t.None=0]="None",t[t.InChildOperation=1]="InChildOperation"})(bt||(bt={}));var ai=new Set([f.Element,f.ElementStart,f.Container,f.ContainerStart,f.Template,f.RepeaterCreate]);var Ln;(function(t){t[t.Tmpl=0]="Tmpl",t[t.Host=1]="Host",t[t.Both=2]="Both"})(Ln||(Ln={}));var li=Object.freeze([]);var ci=new Map([[f.ElementEnd,[f.ElementStart,f.Element]],[f.ContainerEnd,[f.ContainerStart,f.Container]],[f.I18nEnd,[f.I18nStart,f.I18n]]]),ui=new Set([f.Pipe]);var pi=[Xe,Ye,Qe,It,kt].map(t=>t.constructor.name);var wr={},xr="\uE500";wr.ngsp=xr;var Mn;(function(t){t.HEX="hexadecimal",t.DEC="decimal"})(Mn||(Mn={}));var rs=` \f
2+\r \v\u1680\u180E\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF`,hi=new RegExp(`[^${rs}]`),fi=new RegExp(`[${rs}]{2,}`,"g");var d;(function(t){t[t.Character=0]="Character",t[t.Identifier=1]="Identifier",t[t.PrivateIdentifier=2]="PrivateIdentifier",t[t.Keyword=3]="Keyword",t[t.String=4]="String",t[t.Operator=5]="Operator",t[t.Number=6]="Number",t[t.Error=7]="Error"})(d||(d={}));var Sr=["var","let","as","null","undefined","true","false","if","else","this","typeof"],De=class{tokenize(e){let n=new Nt(e),s=[],r=n.scanToken();for(;r!=null;)s.push(r),r=n.scanToken();return s}},M=class{index;end;type;numValue;strValue;constructor(e,n,s,r,o){this.index=e,this.end=n,this.type=s,this.numValue=r,this.strValue=o}isCharacter(e){return this.type==d.Character&&this.numValue==e}isNumber(){return this.type==d.Number}isString(){return this.type==d.String}isOperator(e){return this.type==d.Operator&&this.strValue==e}isIdentifier(){return this.type==d.Identifier}isPrivateIdentifier(){return this.type==d.PrivateIdentifier}isKeyword(){return this.type==d.Keyword}isKeywordLet(){return this.type==d.Keyword&&this.strValue=="let"}isKeywordAs(){return this.type==d.Keyword&&this.strValue=="as"}isKeywordNull(){return this.type==d.Keyword&&this.strValue=="null"}isKeywordUndefined(){return this.type==d.Keyword&&this.strValue=="undefined"}isKeywordTrue(){return this.type==d.Keyword&&this.strValue=="true"}isKeywordFalse(){return this.type==d.Keyword&&this.strValue=="false"}isKeywordThis(){return this.type==d.Keyword&&this.strValue=="this"}isKeywordTypeof(){return this.type===d.Keyword&&this.strValue==="typeof"}isError(){return this.type==d.Error}toNumber(){return this.type==d.Number?this.numValue:-1}toString(){switch(this.type){case d.Character:case d.Identifier:case d.Keyword:case d.Operator:case d.PrivateIdentifier:case d.String:case d.Error:return this.strValue;case d.Number:return this.numValue.toString();default:return null}}};function $n(t,e,n){return new M(t,e,d.Character,n,String.fromCharCode(n))}function Er(t,e,n){return new M(t,e,d.Identifier,0,n)}function yr(t,e,n){return new M(t,e,d.PrivateIdentifier,0,n)}function _r(t,e,n){return new M(t,e,d.Keyword,0,n)}function at(t,e,n){return new M(t,e,d.Operator,0,n)}function Cr(t,e,n){return new M(t,e,d.String,0,n)}function Tr(t,e,n){return new M(t,e,d.Number,n,"")}function kr(t,e,n){return new M(t,e,d.Error,0,n)}var lt=new M(-1,-1,d.Character,0,""),Nt=class{input;length;peek=0;index=-1;constructor(e){this.input=e,this.length=e.length,this.advance()}advance(){this.peek=++this.index>=this.length?ot:this.input.charCodeAt(this.index)}scanToken(){let e=this.input,n=this.length,s=this.peek,r=this.index;for(;s<=Wn;)if(++r>=n){s=ot;break}else s=e.charCodeAt(r);if(this.peek=s,this.index=r,r>=n)return null;if(Rn(s))return this.scanIdentifier();if(j(s))return this.scanNumber(r);let o=r;switch(s){case ee:return this.advance(),j(this.peek)?this.scanNumber(o):$n(o,this.index,ee);case je:case me:case Tt:case xe:case ze:case we:case ge:case te:case ve:return this.scanCharacter(o,s);case zn:case qn:return this.scanString();case zs:return this.scanPrivateIdentifier();case Gn:case Xn:case Xs:case Ct:case Gs:case tr:return this.scanOperator(o,String.fromCharCode(s));case hn:return this.scanQuestion(o);case Js:case Ys:return this.scanComplexOperator(o,String.fromCharCode(s),qe,"=");case js:case qe:return this.scanComplexOperator(o,String.fromCharCode(s),qe,"=",qe,"=");case pn:return this.scanComplexOperator(o,"&",pn,"&");case fn:return this.scanComplexOperator(o,"|",fn,"|");case Zn:for(;ur(this.peek);)this.advance();return this.scanToken()}return this.advance(),this.error(`Unexpected character [${String.fromCharCode(s)}]`,0)}scanCharacter(e,n){return this.advance(),$n(e,this.index,n)}scanOperator(e,n){return this.advance(),at(e,this.index,n)}scanComplexOperator(e,n,s,r,o,a){this.advance();let l=n;return this.peek==s&&(this.advance(),l+=r),o!=null&&this.peek==o&&(this.advance(),l+=a),at(e,this.index,l)}scanIdentifier(){let e=this.index;for(this.advance();Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return Sr.indexOf(n)>-1?_r(e,this.index,n):Er(e,this.index,n)}scanPrivateIdentifier(){let e=this.index;if(this.advance(),!Rn(this.peek))return this.error("Invalid character [#]",-1);for(;Bn(this.peek);)this.advance();let n=this.input.substring(e,this.index);return yr(e,this.index,n)}scanNumber(e){let n=this.index===e,s=!1;for(this.advance();;){if(!j(this.peek))if(this.peek===Mt){if(!j(this.input.charCodeAt(this.index-1))||!j(this.input.charCodeAt(this.index+1)))return this.error("Invalid numeric separator",0);s=!0}else if(this.peek===ee)n=!1;else if(Ir(this.peek)){if(this.advance(),br(this.peek)&&this.advance(),!j(this.peek))return this.error("Invalid exponent",-1);n=!1}else break;this.advance()}let r=this.input.substring(e,this.index);s&&(r=r.replace(/_/g,""));let o=n?Ar(r):parseFloat(r);return Tr(e,this.index,o)}scanString(){let e=this.index,n=this.peek;this.advance();let s="",r=this.index,o=this.input;for(;this.peek!=n;)if(this.peek==er){s+=o.substring(r,this.index);let l;if(this.advance(),this.peek==ar){let u=o.substring(this.index+1,this.index+5);if(/^[0-9a-f]+$/i.test(u))l=parseInt(u,16);else return this.error(`Invalid unicode escape [\\u${u}]`,0);for(let h=0;h<5;h++)this.advance()}else l=Nr(this.peek),this.advance();s+=String.fromCharCode(l),r=this.index}else{if(this.peek==ot)return this.error("Unterminated quote",0);this.advance()}let a=o.substring(r,this.index);return this.advance(),Cr(e,this.index,s+a)}scanQuestion(e){this.advance();let n="?";return(this.peek===hn||this.peek===ee)&&(n+=this.peek===ee?".":"?",this.advance()),at(e,this.index,n)}error(e,n){let s=this.index+n;return kr(s,this.index,`Lexer Error: ${e} at column ${s} in expression [${this.input}]`)}};function Rn(t){return Qn<=t&&t<=Kn||Jn<=t&&t<=Yn||t==Mt||t==jn}function Bn(t){return pr(t)||j(t)||t==Mt||t==jn}function Ir(t){return t==nr||t==Zs}function br(t){return t==Xn||t==Gn}function Nr(t){switch(t){case rr:return Hs;case sr:return Ws;case ir:return qs;case or:return Un;case lr:return Us;default:return t}}function Ar(t){let e=parseInt(t);if(isNaN(e))throw new Error("Invalid integer literal when parsing "+t);return e}var At=class{strings;expressions;offsets;constructor(e,n,s){this.strings=e,this.expressions=n,this.offsets=s}},Pt=class{templateBindings;warnings;errors;constructor(e,n,s){this.templateBindings=e,this.warnings=n,this.errors=s}},ue=class{_lexer;errors=[];constructor(e){this._lexer=e}parseAction(e,n,s,r=Z){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o),l=new z(e,n,s,a,1,this.errors,0).parseChain();return new W(l,e,n,s,this.errors)}parseBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r);return new W(o,e,n,s,this.errors)}checkSimpleExpression(e){let n=new Lt;return e.visit(n),n.errors}parseSimpleBinding(e,n,s,r=Z){let o=this._parseBindingAst(e,n,s,r),a=this.checkSimpleExpression(o);return a.length>0&&this._reportError(`Host binding expression cannot contain ${a.join(" ")}`,e,n),new W(o,e,n,s,this.errors)}_reportError(e,n,s,r){this.errors.push(new ye(e,n,s,r))}_parseBindingAst(e,n,s,r){this._checkNoInterpolation(e,n,r);let o=this._stripComments(e),a=this._lexer.tokenize(o);return new z(e,n,s,a,0,this.errors,0).parseChain()}parseTemplateBindings(e,n,s,r,o){let a=this._lexer.tokenize(n);return new z(n,s,o,a,0,this.errors,0).parseTemplateBindings({source:e,span:new O(r,r+e.length)})}parseInterpolation(e,n,s,r,o=Z){let{strings:a,expressions:l,offsets:u}=this.splitInterpolation(e,n,r,o);if(l.length===0)return null;let h=[];for(let g=0;g<l.length;++g){let S=l[g].text,w=this._stripComments(S),y=this._lexer.tokenize(w),T=new z(e,n,s,y,0,this.errors,u[g]).parseChain();h.push(T)}return this.createInterpolationAst(a.map(g=>g.text),h,e,n,s)}parseInterpolationExpression(e,n,s){let r=this._stripComments(e),o=this._lexer.tokenize(r),a=new z(e,n,s,o,0,this.errors,0).parseChain(),l=["",""];return this.createInterpolationAst(l,[a],e,n,s)}createInterpolationAst(e,n,s,r,o){let a=new G(0,s.length),l=new Pe(a,a.toAbsolute(o),e,n);return new W(l,s,r,o,this.errors)}splitInterpolation(e,n,s,r=Z){let o=[],a=[],l=[],u=s?Pr(s):null,h=0,g=!1,S=!1,{start:w,end:y}=r;for(;h<e.length;)if(g){let T=h,F=T+w.length,fe=this._getInterpolationEndIndex(e,y,F);if(fe===-1){g=!1,S=!0;break}let de=fe+y.length,q=e.substring(F,fe);q.trim().length===0&&this._reportError("Blank expressions are not allowed in interpolated strings",e,`at column ${h} in`,n),a.push({text:q,start:T,end:de});let Ms=((u==null?void 0:u.get(T))??T)+w.length;l.push(Ms),h=de,g=!1}else{let T=h;h=e.indexOf(w,h),h===-1&&(h=e.length);let F=e.substring(T,h);o.push({text:F,start:T,end:h}),g=!0}if(!g)if(S){let T=o[o.length-1];T.text+=e.substring(h),T.end=e.length}else o.push({text:e.substring(h),start:h,end:e.length});return new At(o,a,l)}wrapLiteralPrimitive(e,n,s){let r=new G(0,e==null?0:e.length);return new W(new N(r,r.toAbsolute(s),e),e,n,s,this.errors)}_stripComments(e){let n=this._commentStart(e);return n!=null?e.substring(0,n):e}_commentStart(e){let n=null;for(let s=0;s<e.length-1;s++){let r=e.charCodeAt(s),o=e.charCodeAt(s+1);if(r===Ct&&o==Ct&&n==null)return s;n===r?n=null:n==null&&dn(r)&&(n=r)}return null}_checkNoInterpolation(e,n,{start:s,end:r}){let o=-1,a=-1;for(let l of this._forEachUnquotedChar(e,0))if(o===-1)e.startsWith(s)&&(o=l);else if(a=this._getInterpolationEndIndex(e,r,l),a>-1)break;o>-1&&a>-1&&this._reportError(`Got interpolation (${s}${r}) where expression was expected`,e,`at column ${o} in`,n)}_getInterpolationEndIndex(e,n,s){for(let r of this._forEachUnquotedChar(e,s)){if(e.startsWith(n,r))return r;if(e.startsWith("//",r))return e.indexOf(n,r)}return-1}*_forEachUnquotedChar(e,n){let s=null,r=0;for(let o=n;o<e.length;o++){let a=e[o];dn(e.charCodeAt(o))&&(s===null||s===a)&&r%2===0?s=s===null?a:null:s===null&&(yield o),r=a==="\\"?r+1:0}}},ne;(function(t){t[t.None=0]="None",t[t.Writable=1]="Writable"})(ne||(ne={}));var z=class{input;location;absoluteOffset;tokens;parseFlags;errors;offset;rparensExpected=0;rbracketsExpected=0;rbracesExpected=0;context=ne.None;sourceSpanCache=new Map;index=0;constructor(e,n,s,r,o,a,l){this.input=e,this.location=n,this.absoluteOffset=s,this.tokens=r,this.parseFlags=o,this.errors=a,this.offset=l}peek(e){let n=this.index+e;return n<this.tokens.length?this.tokens[n]:lt}get next(){return this.peek(0)}get atEOF(){return this.index>=this.tokens.length}get inputIndex(){return this.atEOF?this.currentEndIndex:this.next.index+this.offset}get currentEndIndex(){return this.index>0?this.peek(-1).end+this.offset:this.tokens.length===0?this.input.length+this.offset:this.next.index+this.offset}get currentAbsoluteOffset(){return this.absoluteOffset+this.inputIndex}span(e,n){let s=this.currentEndIndex;if(n!==void 0&&n>this.currentEndIndex&&(s=n),e>s){let r=s;s=e,e=r}return new G(e,s)}sourceSpan(e,n){let s=`${e}@${this.inputIndex}:${n}`;return this.sourceSpanCache.has(s)||this.sourceSpanCache.set(s,this.span(e,n).toAbsolute(this.absoluteOffset)),this.sourceSpanCache.get(s)}advance(){this.index++}withContext(e,n){this.context|=e;let s=n();return this.context^=e,s}consumeOptionalCharacter(e){return this.next.isCharacter(e)?(this.advance(),!0):!1}peekKeywordLet(){return this.next.isKeywordLet()}peekKeywordAs(){return this.next.isKeywordAs()}expectCharacter(e){this.consumeOptionalCharacter(e)||this.error(`Missing expected ${String.fromCharCode(e)}`)}consumeOptionalOperator(e){return this.next.isOperator(e)?(this.advance(),!0):!1}expectOperator(e){this.consumeOptionalOperator(e)||this.error(`Missing expected operator ${e}`)}prettyPrintToken(e){return e===lt?"end of input":`token ${e}`}expectIdentifierOrKeyword(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier or keyword"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier or keyword`),null):(this.advance(),e.toString())}expectIdentifierOrKeywordOrString(){let e=this.next;return!e.isIdentifier()&&!e.isKeyword()&&!e.isString()?(e.isPrivateIdentifier()?this._reportErrorForPrivateIdentifier(e,"expected identifier, keyword or string"):this.error(`Unexpected ${this.prettyPrintToken(e)}, expected identifier, keyword, or string`),""):(this.advance(),e.toString())}parseChain(){let e=[],n=this.inputIndex;for(;this.index<this.tokens.length;){let s=this.parsePipe();if(e.push(s),this.consumeOptionalCharacter(ve))for(this.parseFlags&1||this.error("Binding expression cannot contain chained expression");this.consumeOptionalCharacter(ve););else if(this.index<this.tokens.length){let r=this.index;if(this.error(`Unexpected token '${this.next}'`),this.index===r)break}}if(e.length===0){let s=this.offset,r=this.offset+this.input.length;return new b(this.span(s,r),this.sourceSpan(s,r))}return e.length==1?e[0]:new _e(this.span(n),this.sourceSpan(n),e)}parsePipe(){let e=this.inputIndex,n=this.parseExpression();if(this.consumeOptionalOperator("|")){this.parseFlags&1&&this.error("Cannot have a pipe in an action expression");do{let s=this.inputIndex,r=this.expectIdentifierOrKeyword(),o,a;r!==null?o=this.sourceSpan(s):(r="",a=this.next.index!==-1?this.next.index:this.input.length+this.offset,o=new G(a,a).toAbsolute(this.absoluteOffset));let l=[];for(;this.consumeOptionalCharacter(te);)l.push(this.parseExpression());n=new be(this.span(e),this.sourceSpan(e,a),n,r,l,o)}while(this.consumeOptionalOperator("|"))}return n}parseExpression(){return this.parseConditional()}parseConditional(){let e=this.inputIndex,n=this.parseLogicalOr();if(this.consumeOptionalOperator("?")){let s=this.parsePipe(),r;if(this.consumeOptionalCharacter(te))r=this.parsePipe();else{let o=this.inputIndex,a=this.input.substring(e,o);this.error(`Conditional expression ${a} requires all 3 expressions`),r=new b(this.span(e),this.sourceSpan(e))}return new Ce(this.span(e),this.sourceSpan(e),n,s,r)}else return n}parseLogicalOr(){let e=this.inputIndex,n=this.parseLogicalAnd();for(;this.consumeOptionalOperator("||");){let s=this.parseLogicalAnd();n=new A(this.span(e),this.sourceSpan(e),"||",n,s)}return n}parseLogicalAnd(){let e=this.inputIndex,n=this.parseNullishCoalescing();for(;this.consumeOptionalOperator("&&");){let s=this.parseNullishCoalescing();n=new A(this.span(e),this.sourceSpan(e),"&&",n,s)}return n}parseNullishCoalescing(){let e=this.inputIndex,n=this.parseEquality();for(;this.consumeOptionalOperator("??");){let s=this.parseEquality();n=new A(this.span(e),this.sourceSpan(e),"??",n,s)}return n}parseEquality(){let e=this.inputIndex,n=this.parseRelational();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"==":case"===":case"!=":case"!==":this.advance();let r=this.parseRelational();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseRelational(){let e=this.inputIndex,n=this.parseAdditive();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"<":case">":case"<=":case">=":this.advance();let r=this.parseAdditive();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseAdditive(){let e=this.inputIndex,n=this.parseMultiplicative();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"+":case"-":this.advance();let r=this.parseMultiplicative();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parseMultiplicative(){let e=this.inputIndex,n=this.parsePrefix();for(;this.next.type==d.Operator;){let s=this.next.strValue;switch(s){case"*":case"%":case"/":this.advance();let r=this.parsePrefix();n=new A(this.span(e),this.sourceSpan(e),s,n,r);continue}break}return n}parsePrefix(){if(this.next.type==d.Operator){let e=this.inputIndex,n=this.next.strValue,s;switch(n){case"+":return this.advance(),s=this.parsePrefix(),ae.createPlus(this.span(e),this.sourceSpan(e),s);case"-":return this.advance(),s=this.parsePrefix(),ae.createMinus(this.span(e),this.sourceSpan(e),s);case"!":return this.advance(),s=this.parsePrefix(),new Le(this.span(e),this.sourceSpan(e),s)}}else if(this.next.isKeywordTypeof()){this.advance();let e=this.inputIndex,n=this.parsePrefix();return new Me(this.span(e),this.sourceSpan(e),n)}return this.parseCallChain()}parseCallChain(){let e=this.inputIndex,n=this.parsePrimary();for(;;)if(this.consumeOptionalCharacter(ee))n=this.parseAccessMember(n,e,!1);else if(this.consumeOptionalOperator("?."))this.consumeOptionalCharacter(je)?n=this.parseCall(n,e,!0):n=this.consumeOptionalCharacter(ze)?this.parseKeyedReadOrWrite(n,e,!0):this.parseAccessMember(n,e,!0);else if(this.consumeOptionalCharacter(ze))n=this.parseKeyedReadOrWrite(n,e,!1);else if(this.consumeOptionalCharacter(je))n=this.parseCall(n,e,!1);else if(this.consumeOptionalOperator("!"))n=new $e(this.span(e),this.sourceSpan(e),n);else return n}parsePrimary(){let e=this.inputIndex;if(this.consumeOptionalCharacter(je)){this.rparensExpected++;let n=this.parsePipe();return this.rparensExpected--,this.expectCharacter(me),n}else{if(this.next.isKeywordNull())return this.advance(),new N(this.span(e),this.sourceSpan(e),null);if(this.next.isKeywordUndefined())return this.advance(),new N(this.span(e),this.sourceSpan(e),void 0);if(this.next.isKeywordTrue())return this.advance(),new N(this.span(e),this.sourceSpan(e),!0);if(this.next.isKeywordFalse())return this.advance(),new N(this.span(e),this.sourceSpan(e),!1);if(this.next.isKeywordThis())return this.advance(),new Et(this.span(e),this.sourceSpan(e));if(this.consumeOptionalCharacter(ze)){this.rbracketsExpected++;let n=this.parseExpressionList(we);return this.rbracketsExpected--,this.expectCharacter(we),new Ne(this.span(e),this.sourceSpan(e),n)}else{if(this.next.isCharacter(Tt))return this.parseLiteralMap();if(this.next.isIdentifier())return this.parseAccessMember(new X(this.span(e),this.sourceSpan(e)),e,!1);if(this.next.isNumber()){let n=this.next.toNumber();return this.advance(),new N(this.span(e),this.sourceSpan(e),n)}else if(this.next.isString()){let n=this.next.toString();return this.advance(),new N(this.span(e),this.sourceSpan(e),n)}else return this.next.isPrivateIdentifier()?(this._reportErrorForPrivateIdentifier(this.next,null),new b(this.span(e),this.sourceSpan(e))):this.index>=this.tokens.length?(this.error(`Unexpected end of expression: ${this.input}`),new b(this.span(e),this.sourceSpan(e))):(this.error(`Unexpected token ${this.next}`),new b(this.span(e),this.sourceSpan(e)))}}}parseExpressionList(e){let n=[];do if(!this.next.isCharacter(e))n.push(this.parsePipe());else break;while(this.consumeOptionalCharacter(ge));return n}parseLiteralMap(){let e=[],n=[],s=this.inputIndex;if(this.expectCharacter(Tt),!this.consumeOptionalCharacter(xe)){this.rbracesExpected++;do{let r=this.inputIndex,o=this.next.isString(),a=this.expectIdentifierOrKeywordOrString(),l={key:a,quoted:o};if(e.push(l),o)this.expectCharacter(te),n.push(this.parsePipe());else if(this.consumeOptionalCharacter(te))n.push(this.parsePipe());else{l.isShorthandInitialized=!0;let u=this.span(r),h=this.sourceSpan(r);n.push(new re(u,h,h,new X(u,h),a))}}while(this.consumeOptionalCharacter(ge)&&!this.next.isCharacter(xe));this.rbracesExpected--,this.expectCharacter(xe)}return new Ae(this.span(s),this.sourceSpan(s),e,n)}parseAccessMember(e,n,s){let r=this.inputIndex,o=this.withContext(ne.Writable,()=>{let u=this.expectIdentifierOrKeyword()??"";return u.length===0&&this.error("Expected identifier for property access",e.span.end),u}),a=this.sourceSpan(r),l;if(s)this.consumeOptionalOperator("=")?(this.error("The '?.' operator cannot be used in the assignment"),l=new b(this.span(n),this.sourceSpan(n))):l=new ie(this.span(n),this.sourceSpan(n),a,e,o);else if(this.consumeOptionalOperator("=")){if(!(this.parseFlags&1))return this.error("Bindings cannot contain assignments"),new b(this.span(n),this.sourceSpan(n));let u=this.parseConditional();l=new Te(this.span(n),this.sourceSpan(n),a,e,o,u)}else l=new re(this.span(n),this.sourceSpan(n),a,e,o);return l}parseCall(e,n,s){let r=this.inputIndex;this.rparensExpected++;let o=this.parseCallArguments(),a=this.span(r,this.inputIndex).toAbsolute(this.absoluteOffset);this.expectCharacter(me),this.rparensExpected--;let l=this.span(n),u=this.sourceSpan(n);return s?new le(l,u,e,o,a):new Re(l,u,e,o,a)}parseCallArguments(){if(this.next.isCharacter(me))return[];let e=[];do e.push(this.parsePipe());while(this.consumeOptionalCharacter(ge));return e}expectTemplateBindingKey(){let e="",n=!1,s=this.currentAbsoluteOffset;do e+=this.expectIdentifierOrKeywordOrString(),n=this.consumeOptionalOperator("-"),n&&(e+="-");while(n);return{source:e,span:new O(s,s+e.length)}}parseTemplateBindings(e){let n=[];for(n.push(...this.parseDirectiveKeywordBindings(e));this.index<this.tokens.length;){let s=this.parseLetBinding();if(s)n.push(s);else{let r=this.expectTemplateBindingKey(),o=this.parseAsBinding(r);o?n.push(o):(r.source=e.source+r.source.charAt(0).toUpperCase()+r.source.substring(1),n.push(...this.parseDirectiveKeywordBindings(r)))}this.consumeStatementTerminator()}return new Pt(n,[],this.errors)}parseKeyedReadOrWrite(e,n,s){return this.withContext(ne.Writable,()=>{this.rbracketsExpected++;let r=this.parsePipe();if(r instanceof b&&this.error("Key access cannot be empty"),this.rbracketsExpected--,this.expectCharacter(we),this.consumeOptionalOperator("="))if(s)this.error("The '?.' operator cannot be used in the assignment");else{let o=this.parseConditional();return new Ie(this.span(n),this.sourceSpan(n),e,r,o)}else return s?new oe(this.span(n),this.sourceSpan(n),e,r):new ke(this.span(n),this.sourceSpan(n),e,r);return new b(this.span(n),this.sourceSpan(n))})}parseDirectiveKeywordBindings(e){let n=[];this.consumeOptionalCharacter(te);let s=this.getDirectiveBoundTarget(),r=this.currentAbsoluteOffset,o=this.parseAsBinding(e);o||(this.consumeStatementTerminator(),r=this.currentAbsoluteOffset);let a=new O(e.span.start,r);return n.push(new Be(a,e,s)),o&&n.push(o),n}getDirectiveBoundTarget(){if(this.next===lt||this.peekKeywordAs()||this.peekKeywordLet())return null;let e=this.parsePipe(),{start:n,end:s}=e.span,r=this.input.substring(n,s);return new W(e,r,this.location,this.absoluteOffset+n,this.errors)}parseAsBinding(e){if(!this.peekKeywordAs())return null;this.advance();let n=this.expectTemplateBindingKey();this.consumeStatementTerminator();let s=new O(e.span.start,this.currentAbsoluteOffset);return new ce(s,n,e)}parseLetBinding(){if(!this.peekKeywordLet())return null;let e=this.currentAbsoluteOffset;this.advance();let n=this.expectTemplateBindingKey(),s=null;this.consumeOptionalOperator("=")&&(s=this.expectTemplateBindingKey()),this.consumeStatementTerminator();let r=new O(e,this.currentAbsoluteOffset);return new ce(r,n,s)}consumeStatementTerminator(){this.consumeOptionalCharacter(ve)||this.consumeOptionalCharacter(ge)}error(e,n=null){this.errors.push(new ye(e,this.input,this.locationText(n),this.location)),this.skip()}locationText(e=null){return e==null&&(e=this.index),e<this.tokens.length?`at column ${this.tokens[e].index+1} in`:"at the end of the expression"}_reportErrorForPrivateIdentifier(e,n){let s=`Private identifiers are not supported. Unexpected private identifier: ${e}`;n!==null&&(s+=`, ${n}`),this.error(s)}skip(){let e=this.next;for(;this.index<this.tokens.length&&!e.isCharacter(ve)&&!e.isOperator("|")&&(this.rparensExpected<=0||!e.isCharacter(me))&&(this.rbracesExpected<=0||!e.isCharacter(xe))&&(this.rbracketsExpected<=0||!e.isCharacter(we))&&(!(this.context&ne.Writable)||!e.isOperator("="));)this.next.isError()&&this.errors.push(new ye(this.next.toString(),this.input,this.locationText(),this.location)),this.advance(),e=this.next}},Lt=class extends yt{errors=[];visitPipe(){this.errors.push("pipes")}};function Pr(t){let e=new Map,n=0,s=0,r=0;for(;r<t.length;){let o=t[r];if(o.type===9){let[a,l]=o.parts;n+=l.length,s+=a.length}else{let a=o.parts.reduce((l,u)=>l+u.length,0);s+=a,n+=a}e.set(s,n),r++}return e}var Lr=new Map(Object.entries({class:"className",for:"htmlFor",formaction:"formAction",innerHtml:"innerHTML",readonly:"readOnly",tabindex:"tabIndex"})),di=Array.from(Lr).reduce((t,[e,n])=>(t.set(e,n),t),new Map);var mi=new ue(new De);function D(t){return e=>e.kind===t}function Se(t,e){return n=>n.kind===t&&e===n.expression instanceof Ze}function Mr(t){return(t.kind===f.Property||t.kind===f.TwoWayProperty)&&!(t.expression instanceof Ze)}var gi=[{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)},{test:Se(f.Attribute,!0)},{test:Se(f.Property,!0)},{test:Mr},{test:Se(f.Attribute,!1)}],vi=[{test:Se(f.HostProperty,!0)},{test:Se(f.HostProperty,!1)},{test:D(f.Attribute)},{test:D(f.StyleMap),transform:et},{test:D(f.ClassMap),transform:et},{test:D(f.StyleProp)},{test:D(f.ClassProp)}],wi=new Set([f.Listener,f.TwoWayListener,f.StyleMap,f.ClassMap,f.StyleProp,f.ClassProp,f.Property,f.TwoWayProperty,f.HostProperty,f.Attribute]);function et(t){return t.slice(t.length-1)}var xi=new Map([["window",P.resolveWindow],["document",P.resolveDocument],["body",P.resolveBody]]);var Si=new Map([[B.HTML,P.sanitizeHtml],[B.RESOURCE_URL,P.sanitizeResourceUrl],[B.SCRIPT,P.sanitizeScript],[B.STYLE,P.sanitizeStyle],[B.URL,P.sanitizeUrl]]),Ei=new Map([[B.HTML,P.trustConstantHtml],[B.RESOURCE_URL,P.trustConstantResourceUrl]]);var Dn;(function(t){t[t.None=0]="None",t[t.ViewContextRead=1]="ViewContextRead",t[t.ViewContextWrite=2]="ViewContextWrite",t[t.SideEffectful=4]="SideEffectful"})(Dn||(Dn={}));var yi=new Map([[H.Property,U.Property],[H.TwoWay,U.TwoWayProperty],[H.Attribute,U.Attribute],[H.Class,U.ClassName],[H.Style,U.StyleProperty],[H.Animation,U.Animation]]);var _i=Symbol("queryAdvancePlaceholder");var On;(function(t){t[t.NG_CONTENT=0]="NG_CONTENT",t[t.STYLE=1]="STYLE",t[t.STYLESHEET=2]="STYLESHEET",t[t.SCRIPT=3]="SCRIPT",t[t.OTHER=4]="OTHER"})(On||(On={}));var Fn;(function(t){t.IDLE="idle",t.TIMER="timer",t.INTERACTION="interaction",t.IMMEDIATE="immediate",t.HOVER="hover",t.VIEWPORT="viewport",t.NEVER="never"})(Fn||(Fn={}));var is="%COMP%",Ci=`_nghost-${is}`,Ti=`_ngcontent-${is}`;var ki=new St("19.1.2");var Vn;(function(t){t[t.Extract=0]="Extract",t[t.Merge=1]="Merge"})(Vn||(Vn={}));var Hn;(function(t){t[t.Directive=0]="Directive",t[t.Component=1]="Component",t[t.Injectable=2]="Injectable",t[t.Pipe=3]="Pipe",t[t.NgModule=4]="NgModule"})(Hn||(Hn={}));function os({start:t,end:e},n){let s=t,r=e;for(;r!==s&&/\s/.test(n[r-1]);)r--;for(;s!==r&&/\s/.test(n[s]);)s++;return{start:s,end:r}}function Rr({start:t,end:e},n){let s=t,r=e;for(;r!==n.length&&/\s/.test(n[r]);)r++;for(;s!==0&&/\s/.test(n[s-1]);)s--;return{start:s,end:r}}function Br(t,e){return e[t.start-1]==="("&&e[t.end]===")"?{start:t.start-1,end:t.end+1}:t}function as(t,e,n){let s=0,r={start:t.start,end:t.end};for(;;){let o=Rr(r,e),a=Br(o,e);if(o.start===a.start&&o.end===a.end)break;r.start=a.start,r.end=a.end,s++}return{hasParens:(n?s-1:s)!==0,outerSpan:os(n?{start:r.start+1,end:r.end-1}:r,e),innerSpan:os(t,e)}}function ls(t){return typeof t=="string"?e=>e===t:e=>t.test(e)}function cs(t,e,n){let s=ls(e);for(let r=n;r>=0;r--){let o=t[r];if(s(o))return r}throw new Error(`Cannot find front char ${e} from index ${n} in ${JSON.stringify(t)}`)}function us(t,e,n){let s=ls(e);for(let r=n;r<t.length;r++){let o=t[r];if(s(o))return r}throw new Error(`Cannot find character ${e} from index ${n} in ${JSON.stringify(t)}`)}function ps(t){return t.slice(0,1).toLowerCase()+t.slice(1)}function Fe(t){let{start:e,end:n}=t;return{start:e,end:n,range:[e,n]}}var Dr=t=>ue.prototype._commentStart(t);function Or(t,e){let n=e?Dr(t):null;if(n===null)return{text:t,comments:[]};let s={type:"CommentLine",value:t.slice(n+2),...Fe({start:n,end:t.length})};return{text:t.slice(0,n),comments:[s]}}function Ve(t,e=!0){return n=>{let s=new De,r=new ue(s),{text:o,comments:a}=Or(n,e),l=t(o,r);if(l.errors.length!==0){let[{message:u}]=l.errors;throw new SyntaxError(u.replace(/^Parser Error: | at column \d+ in [^]*$/g,""))}return{result:l,comments:a,text:o}}}var hs=Ve((t,e)=>e.parseBinding(t,"",0)),Fr=Ve((t,e)=>e.parseSimpleBinding(t,"",0)),fs=Ve((t,e)=>e.parseAction(t,"",0)),ds=Ve((t,e)=>e.parseInterpolationExpression(t,"",0)),ms=Ve((t,e)=>e.parseTemplateBindings("",t,"",0,0),!1);var Hr=(t,e,n)=>{if(!(t&&e==null))return Array.isArray(e)||typeof e=="string"?e[n<0?e.length+n:n]:e.at(n)},nt=Hr;var Bt=class{text;constructor(e){this.text=e}getCharacterIndex(e,n){return us(this.text,e,n)}getCharacterLastIndex(e,n){return cs(this.text,e,n)}transformSpan(e,{stripSpaces:n=!1,hasParentParens:s=!1}={}){if(!n)return Fe(e);let{outerSpan:r,innerSpan:o,hasParens:a}=as(e,this.text,s),l=Fe(o);return a&&(l.extra={parenthesized:!0,parenStart:r.start,parenEnd:r.end}),l}createNode(e,{stripSpaces:n=!0,hasParentParens:s=!1}={}){let{type:r,start:o,end:a}=e,l={...e,...this.transformSpan({start:o,end:a},{stripSpaces:n,hasParentParens:s})};switch(r){case"NumericLiteral":case"StringLiteral":{let u=this.text.slice(l.start,l.end),{value:h}=l;l.extra={...l.extra,raw:u,rawValue:h};break}case"ObjectProperty":{let{shorthand:u}=l;u&&(l.extra={...l.extra,shorthand:u});break}}return l}},gs=Bt;function Ot(t){var e;return!!((e=t.extra)!=null&&e.parenthesized)}function $(t){return Ot(t)?t.extra.parenStart:t.start}function R(t){return Ot(t)?t.extra.parenEnd:t.end}function vs(t){return(t.type==="OptionalCallExpression"||t.type==="OptionalMemberExpression")&&!Ot(t)}function ws(t,e){let{start:n,end:s}=t.sourceSpan;return n>=s||/^\s+$/.test(e.slice(n,s))}var We,pe,p,v,He,x,Dt,Ue=class extends gs{constructor(n,s){super(s);V(this,p);V(this,We);V(this,pe);K(this,We,n),K(this,pe,s)}get node(){return c(this,p,x).call(this,L(this,We))}transformNode(n){return c(this,p,Dt).call(this,n)}};We=new WeakMap,pe=new WeakMap,p=new WeakSet,v=function(n,{stripSpaces:s=!0,hasParentParens:r=!1}={}){return this.createNode(n,{stripSpaces:s,hasParentParens:r})},He=function(n,s,{computed:r,optional:o,end:a=R(s),hasParentParens:l=!1}){if(ws(n,L(this,pe))||n.sourceSpan.start===s.start)return s;let u=c(this,p,x).call(this,n),h=vs(u);return c(this,p,v).call(this,{type:o||h?"OptionalMemberExpression":"MemberExpression",object:u,property:s,computed:r,...o?{optional:!0}:h?{optional:!1}:void 0,start:$(u),end:a},{hasParentParens:l})},x=function(n,s=!1){return c(this,p,Dt).call(this,n,s)},Dt=function(n,s=!1){if(n instanceof Pe){let{expressions:o}=n;if(o.length!==1)throw new Error("Unexpected 'Interpolation'");return c(this,p,x).call(this,o[0])}if(n instanceof ae)return c(this,p,v).call(this,{type:"UnaryExpression",prefix:!0,argument:c(this,p,x).call(this,n.expr),operator:n.operator,...n.sourceSpan},{hasParentParens:s});if(n instanceof A){let{left:o,operation:a,right:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,l),g=$(u),S=R(h),w={left:u,right:h,start:g,end:S};return a==="&&"||a==="||"||a==="??"?c(this,p,v).call(this,{...w,type:"LogicalExpression",operator:a},{hasParentParens:s}):c(this,p,v).call(this,{...w,type:"BinaryExpression",operator:a},{hasParentParens:s})}if(n instanceof be){let{exp:o,name:a,args:l}=n,u=c(this,p,x).call(this,o),h=$(u),g=R(u),S=this.getCharacterIndex(/\S/,this.getCharacterIndex("|",g)+1),w=c(this,p,v).call(this,{type:"Identifier",name:a,start:S,end:S+a.length}),y=l.map(T=>c(this,p,x).call(this,T));return c(this,p,v).call(this,{type:"NGPipeExpression",left:u,right:w,arguments:y,start:h,end:R(y.length===0?w:nt(!1,y,-1))},{hasParentParens:s})}if(n instanceof _e)return c(this,p,v).call(this,{type:"NGChainedExpression",expressions:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ce){let{condition:o,trueExp:a,falseExp:l}=n,u=c(this,p,x).call(this,o),h=c(this,p,x).call(this,a),g=c(this,p,x).call(this,l);return c(this,p,v).call(this,{type:"ConditionalExpression",test:u,consequent:h,alternate:g,start:$(u),end:R(g)},{hasParentParens:s})}if(n instanceof b)return c(this,p,v).call(this,{type:"NGEmptyExpression",...n.sourceSpan},{hasParentParens:s});if(n instanceof X)return c(this,p,v).call(this,{type:"ThisExpression",...n.sourceSpan},{hasParentParens:s});if(n instanceof ke||n instanceof oe)return c(this,p,He).call(this,n.receiver,c(this,p,x).call(this,n.key),{computed:!0,optional:n instanceof oe,end:n.sourceSpan.end,hasParentParens:s});if(n instanceof Ne)return c(this,p,v).call(this,{type:"ArrayExpression",elements:n.expressions.map(o=>c(this,p,x).call(this,o)),...n.sourceSpan},{hasParentParens:s});if(n instanceof Ae){let{keys:o,values:a}=n,l=a.map(h=>c(this,p,x).call(this,h)),u=o.map(({key:h,quoted:g},S)=>{let w=l[S],y=$(w),T=R(w),F=this.getCharacterIndex(/\S/,S===0?n.sourceSpan.start+1:this.getCharacterIndex(",",R(l[S-1]))+1),fe=y===F?T:this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex(":",y-1)-1)+1,de={start:F,end:fe},q=g?c(this,p,v).call(this,{type:"StringLiteral",value:h,...de}):c(this,p,v).call(this,{type:"Identifier",name:h,...de}),Gt=q.end<q.start||F===y;return c(this,p,v).call(this,{type:"ObjectProperty",key:q,value:w,shorthand:Gt,computed:!1,start:$(q),end:T})});return c(this,p,v).call(this,{type:"ObjectExpression",properties:u,...n.sourceSpan},{hasParentParens:s})}if(n instanceof N){let{value:o}=n;switch(typeof o){case"boolean":return c(this,p,v).call(this,{type:"BooleanLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"number":return c(this,p,v).call(this,{type:"NumericLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"object":return c(this,p,v).call(this,{type:"NullLiteral",...n.sourceSpan},{hasParentParens:s});case"string":return c(this,p,v).call(this,{type:"StringLiteral",value:o,...n.sourceSpan},{hasParentParens:s});case"undefined":return c(this,p,v).call(this,{type:"Identifier",name:"undefined",...n.sourceSpan},{hasParentParens:s});default:throw new Error(`Unexpected LiteralPrimitive value type ${typeof o}`)}}if(n instanceof Re||n instanceof le){let o=n instanceof le,{receiver:a,args:l}=n,u=l.length===1?[c(this,p,x).call(this,l[0],!0)]:l.map(w=>c(this,p,x).call(this,w)),h=c(this,p,x).call(this,a),g=vs(h),S=o||g?"OptionalCallExpression":"CallExpression";return c(this,p,v).call(this,{type:S,callee:h,arguments:u,optional:S==="OptionalCallExpression"?o:void 0,start:$(h),end:n.sourceSpan.end},{hasParentParens:s})}if(n instanceof $e){let o=c(this,p,x).call(this,n.expression);return c(this,p,v).call(this,{type:"TSNonNullExpression",expression:o,start:$(o),end:n.sourceSpan.end},{hasParentParens:s})}let r=n instanceof Le;if(r||n instanceof Me){let o=c(this,p,x).call(this,n.expression),a=r?"!":"typeof",{start:l}=n.sourceSpan;if(!r){let u=this.text.lastIndexOf(a,l);if(u===-1)throw new Error(`Cannot find operator ${a} from index ${l} in ${JSON.stringify(this.text)}`);l=u}return c(this,p,v).call(this,{type:"UnaryExpression",prefix:!0,operator:a,argument:o,start:l,end:R(o)},{hasParentParens:s})}if(n instanceof re||n instanceof ie){let{receiver:o,name:a}=n,l=this.getCharacterLastIndex(/\S/,n.sourceSpan.end-1)+1,u=c(this,p,v).call(this,{type:"Identifier",name:a,start:l-a.length,end:l},ws(o,L(this,pe))?{hasParentParens:s}:{});return c(this,p,He).call(this,o,u,{computed:!1,optional:n instanceof ie,hasParentParens:s})}if(n instanceof Ie){let o=c(this,p,x).call(this,n.key),a=c(this,p,x).call(this,n.value),l=c(this,p,He).call(this,n.receiver,o,{computed:!0,optional:!1,end:this.getCharacterIndex("]",R(o))+1});return c(this,p,v).call(this,{type:"AssignmentExpression",left:l,operator:"=",right:a,start:$(l),end:R(a)},{hasParentParens:s})}if(n instanceof Te){let{receiver:o,name:a,value:l}=n,u=c(this,p,x).call(this,l),h=this.getCharacterLastIndex(/\S/,this.getCharacterLastIndex("=",$(u)-1)-1)+1,g=c(this,p,v).call(this,{type:"Identifier",name:a,start:h-a.length,end:h}),S=c(this,p,He).call(this,o,g,{computed:!1,optional:!1});return c(this,p,v).call(this,{type:"AssignmentExpression",left:S,operator:"=",right:u,start:$(S),end:R(u)},{hasParentParens:s})}throw Object.assign(new Error("Unexpected node"),{node:n})};function xs(t,e){return new Ue(t,e).node}function Ss(t){return t instanceof Be}function Es(t){return t instanceof ce}var he,Q,m,ys,I,Vt,Ht,Ut,_s,Cs,Ts,ks,Ft=class extends Ue{constructor(n,s){super(void 0,s);V(this,m);V(this,he);V(this,Q);K(this,he,n),K(this,Q,s);for(let r of n)c(this,m,_s).call(this,r)}get expressions(){return c(this,m,Ts).call(this)}};he=new WeakMap,Q=new WeakMap,m=new WeakSet,ys=function(){return L(this,he)[0].key},I=function(n,{stripSpaces:s=!0}={}){return this.createNode(n,{stripSpaces:s})},Vt=function(n){return this.transformNode(n)},Ht=function(n){return ps(n.slice(L(this,m,ys).source.length))},Ut=function(n){let s=L(this,Q);if(s[n.start]!=='"'&&s[n.start]!=="'")return;let r=s[n.start],o=!1;for(let a=n.start+1;a<s.length;a++)switch(s[a]){case r:if(!o){n.end=a+1;return}default:o=!1;break;case"\\":o=!o;break}},_s=function(n){c(this,m,Ut).call(this,n.key.span),Es(n)&&n.value&&c(this,m,Ut).call(this,n.value.span)},Cs=function(n){if(!n.value||n.value.source)return n.value;let s=this.getCharacterIndex(/\S/,n.sourceSpan.start);return{source:"$implicit",span:{start:s,end:s}}},Ts=function(){let n=L(this,he),[s]=n,r=L(this,Q).slice(s.sourceSpan.start,s.sourceSpan.end).trim().length===0?n.slice(1):n,o=[],a=null;for(let[l,u]of r.entries()){if(a&&Ss(a)&&Es(u)&&u.value&&u.value.source===a.key.source){let h=c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:u.key.source,...u.key.span}),g=(y,T)=>({...y,...this.transformSpan({start:y.start,end:T})}),S=y=>({...g(y,h.end),alias:h}),w=o.pop();if(w.type==="NGMicrosyntaxExpression")o.push(S(w));else if(w.type==="NGMicrosyntaxKeyedExpression"){let y=S(w.expression);o.push(g({...w,expression:y},y.end))}else throw new Error(`Unexpected type ${w.type}`)}else o.push(c(this,m,ks).call(this,u,l));a=u}return c(this,m,I).call(this,{type:"NGMicrosyntax",body:o,...o.length===0?n[0].sourceSpan:{start:o[0].start,end:nt(!1,o,-1).end}})},ks=function(n,s){if(Ss(n)){let{key:r,value:o}=n;return o?s===0?c(this,m,I).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}):c(this,m,I).call(this,{type:"NGMicrosyntaxKeyedExpression",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:c(this,m,Ht).call(this,r.source),...r.span}),expression:c(this,m,I).call(this,{type:"NGMicrosyntaxExpression",expression:c(this,m,Vt).call(this,o.ast),alias:null,...o.sourceSpan}),start:r.span.start,end:o.sourceSpan.end}):c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:c(this,m,Ht).call(this,r.source),...r.span})}else{let{key:r,sourceSpan:o}=n;if(/^let\s$/.test(L(this,Q).slice(o.start,o.start+4))){let{value:l}=n;return c(this,m,I).call(this,{type:"NGMicrosyntaxLet",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:r.source,...r.span}),value:l?c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:l.source,...l.span}):null,start:o.start,end:l?l.span.end:r.span.end})}else{let l=c(this,m,Cs).call(this,n);return c(this,m,I).call(this,{type:"NGMicrosyntaxAs",key:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:l.source,...l.span}),alias:c(this,m,I).call(this,{type:"NGMicrosyntaxKey",name:r.source,...r.span}),start:l.span.start,end:r.span.end})}}};function Is(t,e){return new Ft(t,e).expressions}function st({result:{ast:t},text:e,comments:n}){return Object.assign(xs(t,e),{comments:n})}function bs({result:{templateBindings:t},text:e}){return Is(t,e)}var Ns=t=>st(hs(t));var As=t=>st(ds(t)),Wt=t=>st(fs(t)),Ps=t=>bs(ms(t));function qt(t){var s,r,o;let e=((s=t.range)==null?void 0:s[0])??t.start,n=(o=((r=t.declaration)==null?void 0:r.decorators)??t.decorators)==null?void 0:o[0];return n?Math.min(qt(n),e):e}function Ls(t){var e;return((e=t.range)==null?void 0:e[1])??t.end}function rt(t){return{astFormat:"estree",parse(e){let n=t(e);return{type:"NGRoot",node:t===Wt&&n.type!=="NGChainedExpression"?{...n,type:"NGChainedExpression",expressions:[n]}:n}},locStart:qt,locEnd:Ls}}var Ur=rt(Wt),Wr=rt(Ns),qr=rt(As),jr=rt(Ps);var Zi=zt;export{Zi as default,jt as parsers};
A node_modules/prettier/plugins/babel.d.ts +18 -0 collapsed to keep the page light
A node_modules/prettier/plugins/babel.js +15 -0 collapsed to keep the page light
A node_modules/prettier/plugins/babel.mjs +15 -0 collapsed to keep the page light
A node_modules/prettier/plugins/estree.d.ts +1 -0 collapsed to keep the page light
A node_modules/prettier/plugins/estree.js +36 -0 collapsed to keep the page light
A node_modules/prettier/plugins/estree.mjs +36 -0 collapsed to keep the page light
A node_modules/prettier/plugins/flow.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/flow.js +19 -0 collapsed to keep the page light
A node_modules/prettier/plugins/flow.mjs +19 -0 collapsed to keep the page light
A node_modules/prettier/plugins/glimmer.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/glimmer.js +30 -0 collapsed to keep the page light
A node_modules/prettier/plugins/glimmer.mjs +30 -0 collapsed to keep the page light
A node_modules/prettier/plugins/graphql.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/graphql.js +29 -0 collapsed to keep the page light
A node_modules/prettier/plugins/graphql.mjs +29 -0 collapsed to keep the page light
A node_modules/prettier/plugins/html.d.ts +8 -0 collapsed to keep the page light
A node_modules/prettier/plugins/html.js +22 -0 collapsed to keep the page light
A node_modules/prettier/plugins/html.mjs +22 -0 collapsed to keep the page light
A node_modules/prettier/plugins/markdown.d.ts +7 -0 collapsed to keep the page light
A node_modules/prettier/plugins/markdown.js +63 -0 collapsed to keep the page light
A node_modules/prettier/plugins/markdown.mjs +63 -0 collapsed to keep the page light
A node_modules/prettier/plugins/meriyah.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/meriyah.js +4 -0 collapsed to keep the page light
A node_modules/prettier/plugins/meriyah.mjs +4 -0 collapsed to keep the page light
A node_modules/prettier/plugins/postcss.d.ts +7 -0 collapsed to keep the page light
A node_modules/prettier/plugins/postcss.js +54 -0 collapsed to keep the page light
A node_modules/prettier/plugins/postcss.mjs +54 -0 collapsed to keep the page light
A node_modules/prettier/plugins/typescript.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/typescript.js +20 -0 collapsed to keep the page light
A node_modules/prettier/plugins/typescript.mjs +20 -0 collapsed to keep the page light
A node_modules/prettier/plugins/yaml.d.ts +5 -0 collapsed to keep the page light
A node_modules/prettier/plugins/yaml.js +161 -0 collapsed to keep the page light
A node_modules/prettier/plugins/yaml.mjs +161 -0 collapsed to keep the page light
A node_modules/prettier/standalone.d.ts +33 -0 collapsed to keep the page light
A node_modules/prettier/standalone.js +39 -0 collapsed to keep the page light
A node_modules/prettier/standalone.mjs +39 -0 collapsed to keep the page light
A node_modules/queue-microtask/LICENSE +20 -0 collapsed to keep the page light
A node_modules/queue-microtask/README.md +90 -0 collapsed to keep the page light
A node_modules/queue-microtask/index.d.ts +2 -0 collapsed to keep the page light
A node_modules/queue-microtask/index.js +9 -0 collapsed to keep the page light
A node_modules/queue-microtask/package.json +55 -0 collapsed to keep the page light
A node_modules/read-cache/LICENSE +20 -0 collapsed to keep the page light
A node_modules/read-cache/README.md +46 -0 collapsed to keep the page light
A node_modules/read-cache/index.js +78 -0 collapsed to keep the page light
A node_modules/read-cache/package.json +34 -0 collapsed to keep the page light
A node_modules/readdirp/LICENSE +21 -0 collapsed to keep the page light
A node_modules/readdirp/README.md +122 -0 collapsed to keep the page light
A node_modules/readdirp/index.d.ts +43 -0 collapsed to keep the page light
A node_modules/readdirp/index.js +287 -0 collapsed to keep the page light
A node_modules/readdirp/package.json +122 -0 collapsed to keep the page light
A node_modules/resolve/.editorconfig +37 -0 collapsed to keep the page light
A node_modules/resolve/.eslintrc +65 -0 collapsed to keep the page light
A node_modules/resolve/.github/FUNDING.yml +12 -0 collapsed to keep the page light
A node_modules/resolve/LICENSE +21 -0 collapsed to keep the page light
A node_modules/resolve/SECURITY.md +3 -0 collapsed to keep the page light
A node_modules/resolve/async.js +3 -0 collapsed to keep the page light
A node_modules/resolve/bin/resolve +50 -0 collapsed to keep the page light
A node_modules/resolve/example/async.js +5 -0 collapsed to keep the page light
A node_modules/resolve/example/sync.js +3 -0 collapsed to keep the page light
A node_modules/resolve/index.js +6 -0 collapsed to keep the page light
A node_modules/resolve/lib/async.js +329 -0 collapsed to keep the page light
A node_modules/resolve/lib/caller.js +8 -0 collapsed to keep the page light
A node_modules/resolve/lib/core.js +12 -0 collapsed to keep the page light
A node_modules/resolve/lib/core.json +158 -0 collapsed to keep the page light
A node_modules/resolve/lib/homedir.js +24 -0 collapsed to keep the page light
A node_modules/resolve/lib/is-core.js +5 -0 collapsed to keep the page light
A node_modules/resolve/lib/node-modules-paths.js +42 -0 collapsed to keep the page light
A node_modules/resolve/lib/normalize-options.js +10 -0 collapsed to keep the page light
A node_modules/resolve/lib/sync.js +208 -0 collapsed to keep the page light
A node_modules/resolve/package.json +72 -0 collapsed to keep the page light
A node_modules/resolve/readme.markdown +301 -0 collapsed to keep the page light
A node_modules/resolve/sync.js +3 -0 collapsed to keep the page light
A node_modules/resolve/test/core.js +88 -0 collapsed to keep the page light
A node_modules/resolve/test/dotdot.js +29 -0 collapsed to keep the page light
A node_modules/resolve/test/dotdot/abc/index.js +2 -0 collapsed to keep the page light
A node_modules/resolve/test/dotdot/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/faulty_basedir.js +29 -0 collapsed to keep the page light
A node_modules/resolve/test/filter.js +34 -0 collapsed to keep the page light
A node_modules/resolve/test/filter_sync.js +33 -0 collapsed to keep the page light
A node_modules/resolve/test/home_paths.js +127 -0 collapsed to keep the page light
A node_modules/resolve/test/home_paths_sync.js +114 -0 collapsed to keep the page light
A node_modules/resolve/test/mock.js +315 -0 collapsed to keep the page light
A node_modules/resolve/test/mock_sync.js +214 -0 collapsed to keep the page light
A node_modules/resolve/test/module_dir.js +56 -0 collapsed to keep the page light
A node_modules/resolve/test/module_dir/xmodules/aaa/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/module_dir/ymodules/aaa/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/module_dir/zmodules/bbb/main.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/module_dir/zmodules/bbb/package.json +3 -0 collapsed to keep the page light
A node_modules/resolve/test/node-modules-paths.js +143 -0 collapsed to keep the page light
A node_modules/resolve/test/node_path.js +70 -0 collapsed to keep the page light
A node_modules/resolve/test/node_path/x/aaa/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/node_path/x/ccc/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/node_path/y/bbb/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/node_path/y/ccc/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/nonstring.js +9 -0 collapsed to keep the page light
A node_modules/resolve/test/pathfilter.js +75 -0 collapsed to keep the page light
A node_modules/resolve/test/pathfilter/deep_ref/main.js +0 -0

no textual change.

A node_modules/resolve/test/precedence.js +23 -0 collapsed to keep the page light
A node_modules/resolve/test/precedence/aaa.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/precedence/aaa/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/precedence/aaa/main.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/precedence/bbb.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/precedence/bbb/main.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver.js +597 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/baz/doom.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/baz/package.json +4 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/baz/quux.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/browser_field/a.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/browser_field/b.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/browser_field/package.json +5 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/cup.coffee +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/dot_main/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/dot_main/package.json +3 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/dot_slash_main/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/dot_slash_main/package.json +3 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/false_main/index.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/false_main/package.json +4 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/foo.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/incorrect_main/index.js +2 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/incorrect_main/package.json +3 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/invalid_main/package.json +7 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/mug.coffee +0 -0

no textual change.

A node_modules/resolve/test/resolver/mug.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/multirepo/lerna.json +6 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/multirepo/package.json +20 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/multirepo/packages/package-a/index.js +35 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/multirepo/packages/package-a/package.json +14 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/multirepo/packages/package-b/index.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/multirepo/packages/package-b/package.json +14 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/nested_symlinks/mylib/async.js +26 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/nested_symlinks/mylib/package.json +15 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/nested_symlinks/mylib/sync.js +12 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/other_path/lib/other-lib.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/other_path/root.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/quux/foo/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/same_names/foo.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/same_names/foo/index.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/symlinked/_/node_modules/foo.js +0 -0

no textual change.

A node_modules/resolve/test/resolver/symlinked/_/symlink_target/.gitkeep +0 -0

no textual change.

A node_modules/resolve/test/resolver/symlinked/package/bar.js +1 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/symlinked/package/package.json +3 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver/without_basedir/main.js +5 -0 collapsed to keep the page light
A node_modules/resolve/test/resolver_sync.js +730 -0 collapsed to keep the page light
A node_modules/resolve/test/shadowed_core.js +54 -0 collapsed to keep the page light
A node_modules/resolve/test/shadowed_core/node_modules/util/index.js +0 -0

no textual change.

A node_modules/resolve/test/subdirs.js +13 -0 collapsed to keep the page light
A node_modules/resolve/test/symlinks.js +176 -0 collapsed to keep the page light
A node_modules/reusify/.coveralls.yml +1 -0 collapsed to keep the page light
A node_modules/reusify/.travis.yml +28 -0 collapsed to keep the page light
A node_modules/reusify/LICENSE +22 -0 collapsed to keep the page light
A node_modules/reusify/README.md +145 -0 collapsed to keep the page light
A node_modules/reusify/benchmarks/createNoCodeFunction.js +30 -0 collapsed to keep the page light
A node_modules/reusify/benchmarks/fib.js +13 -0 collapsed to keep the page light
A node_modules/reusify/benchmarks/reuseNoCodeFunction.js +38 -0 collapsed to keep the page light
A node_modules/reusify/package.json +45 -0 collapsed to keep the page light
A node_modules/reusify/reusify.js +33 -0 collapsed to keep the page light
A node_modules/reusify/test.js +66 -0 collapsed to keep the page light
A node_modules/run-parallel/LICENSE +20 -0 collapsed to keep the page light
A node_modules/run-parallel/README.md +85 -0 collapsed to keep the page light
A node_modules/run-parallel/index.js +51 -0 collapsed to keep the page light
A node_modules/run-parallel/package.json +58 -0 collapsed to keep the page light
A node_modules/shebang-command/index.js +19 -0 collapsed to keep the page light
A node_modules/shebang-command/license +9 -0 collapsed to keep the page light
A node_modules/shebang-command/package.json +34 -0 collapsed to keep the page light
A node_modules/shebang-command/readme.md +34 -0 collapsed to keep the page light
A node_modules/shebang-regex/index.d.ts +22 -0 collapsed to keep the page light
A node_modules/shebang-regex/index.js +2 -0 collapsed to keep the page light
A node_modules/shebang-regex/license +9 -0 collapsed to keep the page light
A node_modules/shebang-regex/package.json +35 -0 collapsed to keep the page light
A node_modules/shebang-regex/readme.md +33 -0 collapsed to keep the page light
A node_modules/signal-exit/README.md +74 -0 collapsed to keep the page light
A node_modules/signal-exit/package.json +106 -0 collapsed to keep the page light
A node_modules/source-map-js/LICENSE +28 -0 collapsed to keep the page light
A node_modules/source-map-js/README.md +765 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/array-set.js +121 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/base64-vlq.js +140 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/base64.js +67 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/binary-search.js +111 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/mapping-list.js +79 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/quick-sort.js +132 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-map-consumer.d.ts +1 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-map-consumer.js +1188 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-map-generator.d.ts +1 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-map-generator.js +444 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-node.d.ts +1 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/source-node.js +413 -0 collapsed to keep the page light
A node_modules/source-map-js/lib/util.js +594 -0 collapsed to keep the page light
A node_modules/source-map-js/package.json +71 -0 collapsed to keep the page light
A node_modules/source-map-js/source-map.d.ts +104 -0 collapsed to keep the page light
A node_modules/source-map-js/source-map.js +8 -0 collapsed to keep the page light
A node_modules/string-width-cjs/index.d.ts +29 -0 collapsed to keep the page light
A node_modules/string-width-cjs/index.js +47 -0 collapsed to keep the page light
A node_modules/string-width-cjs/license +9 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/README.md +73 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/es2015/index.js +6 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/es2015/text.js +6 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/index.d.ts +23 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/index.js +6 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/package.json +50 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/emoji-regex/text.js +6 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/index.d.ts +17 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/index.js +4 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/license +9 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex/index.d.ts +37 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex/license +9 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex/package.json +55 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +78 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/package.json +54 -0 collapsed to keep the page light
A node_modules/string-width-cjs/node_modules/strip-ansi/readme.md +46 -0 collapsed to keep the page light
A node_modules/string-width-cjs/package.json +56 -0 collapsed to keep the page light
A node_modules/string-width-cjs/readme.md +50 -0 collapsed to keep the page light
A node_modules/string-width/index.d.ts +29 -0 collapsed to keep the page light
A node_modules/string-width/index.js +54 -0 collapsed to keep the page light
A node_modules/string-width/license +9 -0 collapsed to keep the page light
A node_modules/string-width/package.json +59 -0 collapsed to keep the page light
A node_modules/string-width/readme.md +67 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/index.d.ts +17 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/index.js +4 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/license +9 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.d.ts +37 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/node_modules/ansi-regex/index.js +10 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/node_modules/ansi-regex/license +9 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/node_modules/ansi-regex/package.json +55 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/node_modules/ansi-regex/readme.md +78 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/package.json +54 -0 collapsed to keep the page light
A node_modules/strip-ansi-cjs/readme.md +46 -0 collapsed to keep the page light
A node_modules/strip-ansi/index.d.ts +15 -0 collapsed to keep the page light
A node_modules/strip-ansi/index.js +14 -0 collapsed to keep the page light
A node_modules/strip-ansi/license +9 -0 collapsed to keep the page light
A node_modules/strip-ansi/package.json +57 -0 collapsed to keep the page light
A node_modules/strip-ansi/readme.md +41 -0 collapsed to keep the page light
A node_modules/sucrase/LICENSE +21 -0 collapsed to keep the page light
A node_modules/sucrase/README.md +295 -0 collapsed to keep the page light
A node_modules/sucrase/bin/sucrase +3 -0 collapsed to keep the page light
A node_modules/sucrase/bin/sucrase-node +18 -0 collapsed to keep the page light
A node_modules/sucrase/package.json +88 -0 collapsed to keep the page light
A node_modules/sucrase/register/index.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/js.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/jsx.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/ts-legacy-module-interop.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/ts.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/tsx-legacy-module-interop.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/register/tsx.js +1 -0 collapsed to keep the page light
A node_modules/sucrase/ts-node-plugin/index.js +83 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/.eslintrc +14 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml +12 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/.nycrc +9 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/CHANGELOG.md +22 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/LICENSE +21 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/README.md +42 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/browser.js +3 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/index.js +9 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/package.json +70 -0 collapsed to keep the page light
A node_modules/supports-preserve-symlinks-flag/test/index.js +29 -0 collapsed to keep the page light
A node_modules/tapable/LICENSE +21 -0 collapsed to keep the page light
A node_modules/tapable/README.md +296 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncParallelBailHook.js +85 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncParallelHook.js +37 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncSeriesBailHook.js +42 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncSeriesHook.js +37 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncSeriesLoopHook.js +37 -0 collapsed to keep the page light
A node_modules/tapable/lib/AsyncSeriesWaterfallHook.js +47 -0 collapsed to keep the page light
A node_modules/tapable/lib/Hook.js +175 -0 collapsed to keep the page light
A node_modules/tapable/lib/HookCodeFactory.js +468 -0 collapsed to keep the page light
A node_modules/tapable/lib/HookMap.js +61 -0 collapsed to keep the page light
A node_modules/tapable/lib/MultiHook.js +54 -0 collapsed to keep the page light
A node_modules/tapable/lib/SyncBailHook.js +51 -0 collapsed to keep the page light
A node_modules/tapable/lib/SyncHook.js +46 -0 collapsed to keep the page light
A node_modules/tapable/lib/SyncLoopHook.js +46 -0 collapsed to keep the page light
A node_modules/tapable/lib/SyncWaterfallHook.js +57 -0 collapsed to keep the page light
A node_modules/tapable/lib/index.js +19 -0 collapsed to keep the page light
A node_modules/tapable/lib/util-browser.js +16 -0 collapsed to keep the page light
A node_modules/tapable/package.json +44 -0 collapsed to keep the page light
A node_modules/tapable/tapable.d.ts +116 -0 collapsed to keep the page light
A node_modules/thenify-all/History.md +11 -0 collapsed to keep the page light
A node_modules/thenify-all/LICENSE +22 -0 collapsed to keep the page light
A node_modules/thenify-all/README.md +66 -0 collapsed to keep the page light
A node_modules/thenify-all/index.js +73 -0 collapsed to keep the page light
A node_modules/thenify-all/package.json +34 -0 collapsed to keep the page light
A node_modules/thenify/History.md +11 -0 collapsed to keep the page light
A node_modules/thenify/LICENSE +22 -0 collapsed to keep the page light
A node_modules/thenify/README.md +120 -0 collapsed to keep the page light
A node_modules/thenify/index.js +77 -0 collapsed to keep the page light
A node_modules/thenify/package.json +31 -0 collapsed to keep the page light
A node_modules/to-regex-range/LICENSE +21 -0 collapsed to keep the page light
A node_modules/to-regex-range/README.md +305 -0 collapsed to keep the page light
A node_modules/to-regex-range/index.js +288 -0 collapsed to keep the page light
A node_modules/to-regex-range/package.json +88 -0 collapsed to keep the page light
A node_modules/ts-interface-checker/LICENSE +201 -0 collapsed to keep the page light
A node_modules/ts-interface-checker/README.md +185 -0 collapsed to keep the page light
A node_modules/ts-interface-checker/package.json +60 -0 collapsed to keep the page light
A node_modules/util-deprecate/History.md +16 -0 collapsed to keep the page light
A node_modules/util-deprecate/LICENSE +24 -0 collapsed to keep the page light
A node_modules/util-deprecate/README.md +53 -0 collapsed to keep the page light
A node_modules/util-deprecate/browser.js +67 -0 collapsed to keep the page light
A node_modules/util-deprecate/node.js +6 -0 collapsed to keep the page light
A node_modules/util-deprecate/package.json +27 -0 collapsed to keep the page light
A node_modules/which/CHANGELOG.md +166 -0 collapsed to keep the page light
A node_modules/which/LICENSE +15 -0 collapsed to keep the page light
A node_modules/which/README.md +54 -0 collapsed to keep the page light
A node_modules/which/bin/node-which +52 -0 collapsed to keep the page light
A node_modules/which/package.json +43 -0 collapsed to keep the page light
A node_modules/which/which.js +125 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/index.js +216 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.d.ts +345 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/ansi-styles/index.js +163 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/ansi-styles/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/ansi-styles/package.json +56 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/ansi-styles/readme.md +152 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/index.d.ts +29 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/index.js +47 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/README.md +73 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/es2015/index.js +6 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/es2015/text.js +6 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/index.d.ts +23 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/index.js +6 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/package.json +50 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/node_modules/emoji-regex/text.js +6 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/package.json +56 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/string-width/readme.md +50 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.d.ts +17 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/index.js +4 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex/index.d.ts +37 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex/index.js +10 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex/package.json +55 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/node_modules/ansi-regex/readme.md +78 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/package.json +54 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/node_modules/strip-ansi/readme.md +46 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/package.json +62 -0 collapsed to keep the page light
A node_modules/wrap-ansi-cjs/readme.md +91 -0 collapsed to keep the page light
A node_modules/wrap-ansi/index.d.ts +41 -0 collapsed to keep the page light
A node_modules/wrap-ansi/index.js +214 -0 collapsed to keep the page light
A node_modules/wrap-ansi/license +9 -0 collapsed to keep the page light
A node_modules/wrap-ansi/package.json +69 -0 collapsed to keep the page light
A node_modules/wrap-ansi/readme.md +91 -0 collapsed to keep the page light
A node_modules/yaml/LICENSE +13 -0 collapsed to keep the page light
A node_modules/yaml/README.md +169 -0 collapsed to keep the page light
A node_modules/yaml/bin.mjs +11 -0 collapsed to keep the page light
A node_modules/yaml/browser/index.js +5 -0 collapsed to keep the page light
A node_modules/yaml/browser/package.json +3 -0 collapsed to keep the page light
A node_modules/yaml/package.json +96 -0 collapsed to keep the page light
A node_modules/yaml/util.js +2 -0 collapsed to keep the page light
D package.json +0 -17 collapsed to keep the page light
M tailwind.config.js +9 -56 collapsed to keep the page light

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close