mrsandip commited on
Commit
c485fc9
·
verified ·
1 Parent(s): fe6678a

Update (part 21)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. e-commerce/node_modules/next/dist/esm/lib/metadata/types/icons.js.map +1 -0
  2. e-commerce/node_modules/next/dist/esm/lib/metadata/types/manifest-types.js +3 -0
  3. e-commerce/node_modules/next/dist/esm/lib/metadata/types/manifest-types.js.map +1 -0
  4. e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-interface.js +15 -0
  5. e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-interface.js.map +1 -0
  6. e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-types.js +7 -0
  7. e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-types.js.map +1 -0
  8. e-commerce/node_modules/next/dist/esm/lib/metadata/types/opengraph-types.js +3 -0
  9. e-commerce/node_modules/next/dist/esm/lib/metadata/types/opengraph-types.js.map +1 -0
  10. e-commerce/node_modules/next/dist/esm/lib/metadata/types/resolvers.js +3 -0
  11. e-commerce/node_modules/next/dist/esm/lib/metadata/types/resolvers.js.map +1 -0
  12. e-commerce/node_modules/next/dist/esm/lib/metadata/types/twitter-types.js +4 -0
  13. e-commerce/node_modules/next/dist/esm/lib/metadata/types/twitter-types.js.map +1 -0
  14. e-commerce/node_modules/next/dist/esm/lib/mime-type.js +10 -0
  15. e-commerce/node_modules/next/dist/esm/lib/mime-type.js.map +1 -0
  16. e-commerce/node_modules/next/dist/esm/lib/mkcert.js +132 -0
  17. e-commerce/node_modules/next/dist/esm/lib/mkcert.js.map +1 -0
  18. e-commerce/node_modules/next/dist/esm/lib/multi-file-writer.js +64 -0
  19. e-commerce/node_modules/next/dist/esm/lib/multi-file-writer.js.map +1 -0
  20. e-commerce/node_modules/next/dist/esm/lib/needs-experimental-react.js +7 -0
  21. e-commerce/node_modules/next/dist/esm/lib/needs-experimental-react.js.map +1 -0
  22. e-commerce/node_modules/next/dist/esm/lib/non-nullable.js +5 -0
  23. e-commerce/node_modules/next/dist/esm/lib/non-nullable.js.map +1 -0
  24. e-commerce/node_modules/next/dist/esm/lib/normalize-path.js +6 -0
  25. e-commerce/node_modules/next/dist/esm/lib/normalize-path.js.map +1 -0
  26. e-commerce/node_modules/next/dist/esm/lib/oxford-comma-list.js +5 -0
  27. e-commerce/node_modules/next/dist/esm/lib/oxford-comma-list.js.map +1 -0
  28. e-commerce/node_modules/next/dist/esm/lib/page-types.js +8 -0
  29. e-commerce/node_modules/next/dist/esm/lib/page-types.js.map +1 -0
  30. e-commerce/node_modules/next/dist/esm/lib/patch-incorrect-lockfile.js +131 -0
  31. e-commerce/node_modules/next/dist/esm/lib/patch-incorrect-lockfile.js.map +1 -0
  32. e-commerce/node_modules/next/dist/esm/lib/pick.js +9 -0
  33. e-commerce/node_modules/next/dist/esm/lib/pick.js.map +1 -0
  34. e-commerce/node_modules/next/dist/esm/lib/picocolors.js +63 -0
  35. e-commerce/node_modules/next/dist/esm/lib/picocolors.js.map +1 -0
  36. e-commerce/node_modules/next/dist/esm/lib/pretty-bytes.js +60 -0
  37. e-commerce/node_modules/next/dist/esm/lib/pretty-bytes.js.map +1 -0
  38. e-commerce/node_modules/next/dist/esm/lib/profiles-dir.js +40 -0
  39. e-commerce/node_modules/next/dist/esm/lib/profiles-dir.js.map +1 -0
  40. e-commerce/node_modules/next/dist/esm/lib/realpath.js +9 -0
  41. e-commerce/node_modules/next/dist/esm/lib/realpath.js.map +1 -0
  42. e-commerce/node_modules/next/dist/esm/lib/recursive-copy.js +61 -0
  43. e-commerce/node_modules/next/dist/esm/lib/recursive-copy.js.map +1 -0
  44. e-commerce/node_modules/next/dist/esm/lib/recursive-delete.js +120 -0
  45. e-commerce/node_modules/next/dist/esm/lib/recursive-delete.js.map +1 -0
  46. e-commerce/node_modules/next/dist/esm/lib/recursive-readdir.js +115 -0
  47. e-commerce/node_modules/next/dist/esm/lib/recursive-readdir.js.map +1 -0
  48. e-commerce/node_modules/next/dist/esm/lib/redirect-status.js +23 -0
  49. e-commerce/node_modules/next/dist/esm/lib/redirect-status.js.map +1 -0
  50. e-commerce/node_modules/next/dist/esm/lib/require-instrumentation-client.js +31 -0
e-commerce/node_modules/next/dist/esm/lib/metadata/types/icons.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/icons.ts"],"sourcesContent":["export type StaticMetadata = {\n icon: any[] | undefined\n apple: any[] | undefined\n openGraph: any[] | undefined\n twitter: any[] | undefined\n manifest: string | undefined\n} | null\n"],"names":[],"mappings":"AAAA,WAMQ","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/manifest-types.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ export { };
2
+
3
+ //# sourceMappingURL=manifest-types.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/manifest-types.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/manifest-types.ts"],"sourcesContent":["type ClientModeEnum =\n | 'auto'\n | 'focus-existing'\n | 'navigate-existing'\n | 'navigate-new'\n\ntype File = {\n name: string\n accept: string | string[]\n}\n\ntype Icon = {\n src: string\n type?: string | undefined\n sizes?: string | undefined\n purpose?: 'any' | 'maskable' | 'monochrome' | undefined\n}\n\nexport type Manifest = {\n background_color?: string | undefined\n categories?: string[] | undefined\n description?: string | undefined\n dir?: 'ltr' | 'rtl' | 'auto' | undefined\n display?: 'fullscreen' | 'standalone' | 'minimal-ui' | 'browser' | undefined\n display_override?:\n | (\n | 'fullscreen'\n | 'standalone'\n | 'minimal-ui'\n | 'browser'\n | 'window-controls-overlay'\n )[]\n | undefined\n file_handlers?:\n | {\n action: string\n accept: {\n [mimeType: string]: string[]\n }\n }[]\n | undefined\n icons?: Icon[] | undefined\n id?: string | undefined\n lang?: string | undefined\n launch_handler?:\n | {\n client_mode: ClientModeEnum | ClientModeEnum[]\n }\n | undefined\n name?: string | undefined\n orientation?:\n | 'any'\n | 'natural'\n | 'landscape'\n | 'portrait'\n | 'portrait-primary'\n | 'portrait-secondary'\n | 'landscape-primary'\n | 'landscape-secondary'\n | undefined\n prefer_related_applications?: boolean | undefined\n protocol_handlers?:\n | {\n protocol: string\n url: string\n }[]\n | undefined\n related_applications?:\n | {\n platform: string\n url: string\n id?: string | undefined\n }[]\n | undefined\n scope?: string | undefined\n screenshots?:\n | {\n form_factor?: 'narrow' | 'wide' | undefined\n label?: string | undefined\n platform?:\n | 'android'\n | 'chromeos'\n | 'ipados'\n | 'ios'\n | 'kaios'\n | 'macos'\n | 'windows'\n | 'xbox'\n | 'chrome_web_store'\n | 'itunes'\n | 'microsoft-inbox'\n | 'microsoft-store'\n | 'play'\n | undefined\n src: string\n type?: string | undefined\n sizes?: string | undefined\n }[]\n | undefined\n share_target?:\n | {\n action: string\n method?: 'get' | 'post' | 'GET' | 'POST' | undefined\n enctype?:\n | 'application/x-www-form-urlencoded'\n | 'multipart/form-data'\n | undefined\n params: {\n title?: string | undefined\n text?: string | undefined\n url?: string | undefined\n files?: File | File[] | undefined\n }\n }\n | undefined\n short_name?: string | undefined\n shortcuts?:\n | {\n name: string\n short_name?: string | undefined\n description?: string | undefined\n url: string\n icons?: Icon[] | undefined\n }[]\n | undefined\n start_url?: string | undefined\n theme_color?: string | undefined\n}\n"],"names":[],"mappings":"AAkBA,WA6GC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-interface.js ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Next.js Metadata API
3
+ *
4
+ * This file defines the types used by Next.js to configure metadata
5
+ * through static exports or dynamic `generateMetadata` functions in Server Components.
6
+ *
7
+ * @remarks
8
+ * - The static `metadata` object and `generateMetadata` function are only supported in Server Components.
9
+ * - Do not export both a `metadata` object and a `generateMetadata` function from the same route segment.
10
+ * - You can still render metadata in client components directly as part of the component's JSX.
11
+ *
12
+ * @see https://nextjs.org/docs/app/api-reference/metadata
13
+ */ export { };
14
+
15
+ //# sourceMappingURL=metadata-interface.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-interface.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/metadata-interface.ts"],"sourcesContent":["/**\n * Next.js Metadata API\n *\n * This file defines the types used by Next.js to configure metadata\n * through static exports or dynamic `generateMetadata` functions in Server Components.\n *\n * @remarks\n * - The static `metadata` object and `generateMetadata` function are only supported in Server Components.\n * - Do not export both a `metadata` object and a `generateMetadata` function from the same route segment.\n * - You can still render metadata in client components directly as part of the component's JSX.\n *\n * @see https://nextjs.org/docs/app/api-reference/metadata\n */\n\nimport type {\n AlternateURLs,\n Languages,\n ResolvedAlternateURLs,\n} from './alternative-urls-types'\nimport type {\n AppleWebApp,\n AppLinks,\n Facebook,\n FormatDetection,\n ItunesApp,\n Pinterest,\n ResolvedAppleWebApp,\n ResolvedAppLinks,\n ResolvedFacebook,\n ResolvedPinterest,\n ViewportLayout,\n} from './extra-types'\nimport type {\n DeprecatedMetadataFields,\n AbsoluteTemplateString,\n Author,\n ColorSchemeEnum,\n Icon,\n Icons,\n IconURL,\n ReferrerEnum,\n ResolvedIcons,\n ResolvedVerification,\n Robots,\n ResolvedRobots,\n TemplateString,\n Verification,\n ThemeColorDescriptor,\n Videos,\n} from './metadata-types'\nimport type { Manifest as ManifestFile } from './manifest-types'\nimport type { OpenGraph, ResolvedOpenGraph } from './opengraph-types'\nimport type { ResolvedTwitterMetadata, Twitter } from './twitter-types'\n\n/**\n * Metadata interface to describe all the metadata fields that can be set in a document.\n *\n * @remarks\n * This interface covers all the metadata fields available in Next.js including title, description,\n * icons, openGraph, twitter, and more. Fields such as `metadataBase` help in composing absolute URLs\n * from relative ones. The `title` field supports both simple strings and a template object with `default`,\n * `template`, and `absolute` properties.\n *\n * @example\n * ```tsx\n * // Static metadata export in a layout or page:\n * import type { Metadata } from 'next'\n *\n * export const metadata: Metadata = {\n * metadataBase: new URL('https://example.com'),\n * title: { default: 'My Site', template: '%s | My Site' },\n * description: 'Welcome to My Site',\n * alternates: {\n * canonical: 'https://example.com',\n * languages: {\n * 'en-US': 'https://example.com/en-US',\n * 'de-DE': 'https://example.com/de-DE'\n * }\n * },\n * openGraph: {\n * title: 'My Site',\n * description: 'Welcome to My Site',\n * url: 'https://example.com',\n * siteName: 'My Site',\n * images: [{ url: 'https://example.com/og.png' }]\n * },\n * }\n * ```\n */\ninterface Metadata extends DeprecatedMetadataFields {\n /**\n * The base path and origin for absolute URLs in various metadata fields.\n *\n * @remarks\n * When relative URLs (for Open Graph images, alternates, etc.) are used, they are composed with this base.\n * If not provided, Next.js will populate a default value based on environment variables.\n */\n metadataBase?: null | string | URL | undefined\n\n /**\n * The document title.\n *\n * @remarks\n * The title can be a simple string (e.g., `\"My Blog\"`) or an object with:\n * - `default`: A fallback title for child segments.\n * - `template`: A title template (e.g., `\"%s | My Website\"`) applied to child titles.\n * - `absolute`: A title that overrides parent templates.\n *\n * @example\n * ```tsx\n * // As a simple string:\n * title: \"My Blog\"\n *\n * // As a template object:\n * title: { default: \"Dashboard\", template: \"%s | My Website\" }\n *\n * // Using absolute value (ignores parent template):\n * title: { absolute: \"My Blog\", template: \"%s | My Website\" }\n * ```\n */\n title?: null | string | TemplateString | undefined\n\n /**\n * The document description, and optionally the Open Graph and Twitter descriptions.\n *\n * @example\n * ```tsx\n * description: \"My Blog Description\"\n * // Renders: <meta name=\"description\" content=\"My Blog Description\" />\n * ```\n */\n description?: null | string | undefined\n\n // Standard metadata names\n // https://developer.mozilla.org/docs/Web/HTML/Element/meta/name\n\n /**\n * The application name.\n *\n * @example\n * ```tsx\n * applicationName: \"My Blog\"\n * // Renders: <meta name=\"application-name\" content=\"My Blog\" />\n * ```\n */\n applicationName?: null | string | undefined\n\n /**\n * The authors of the document.\n *\n * @example\n * ```tsx\n * authors: [{ name: \"Next.js Team\", url: \"https://nextjs.org\" }]\n * // Renders:\n * // <meta name=\"author\" content=\"Next.js Team\" />\n * // <link rel=\"author\" href=\"https://nextjs.org\" />\n * ```\n */\n authors?: null | Author | Array<Author> | undefined\n\n /**\n * The generator used for the document.\n *\n * @example\n * ```tsx\n * generator: \"Next.js\"\n * // Renders: <meta name=\"generator\" content=\"Next.js\" />\n * ```\n */\n generator?: null | string | undefined\n\n /**\n * The keywords for the document.\n *\n * @remarks\n * When an array is provided, keywords are flattened into a comma-separated string.\n *\n * @example\n * ```tsx\n * keywords: \"nextjs, react, blog\"\n * // or\n * keywords: [\"react\", \"server components\"]\n * ```\n */\n keywords?: null | string | Array<string> | undefined\n\n /**\n * The referrer setting for the document.\n *\n * @example\n * ```tsx\n * referrer: \"origin\"\n * // Renders: <meta name=\"referrer\" content=\"origin\" />\n * ```\n */\n referrer?: null | ReferrerEnum | undefined\n\n /**\n * The theme color for the document.\n *\n * @deprecated Use the new viewport configuration (`export const viewport: Viewport = { ... }`) instead.\n */\n themeColor?:\n | null\n | string\n | ThemeColorDescriptor\n | ThemeColorDescriptor[]\n | undefined\n\n /**\n * The color scheme for the document.\n *\n * @deprecated Use the new viewport configuration (`export const viewport: Viewport = { ... }`) instead.\n */\n colorScheme?: null | ColorSchemeEnum | undefined\n\n /**\n * The viewport setting for the document.\n *\n * @deprecated Use the new viewport configuration (`export const viewport: Viewport = { ... }`) instead.\n */\n viewport?: null | string | ViewportLayout | undefined\n\n /**\n * The creator of the document.\n *\n * @example\n * ```tsx\n * creator: \"Next.js Team\"\n * // Renders: <meta name=\"creator\" content=\"Next.js Team\" />\n * ```\n */\n creator?: null | string | undefined\n\n /**\n * The publisher of the document.\n *\n * @example\n * ```tsx\n * publisher: \"Vercel\"\n * // Renders: <meta name=\"publisher\" content=\"Vercel\" />\n * ```\n */\n publisher?: null | string | undefined\n\n // https://developer.mozilla.org/docs/Web/HTML/Element/meta/name#other_metadata_names\n\n /**\n * The robots setting for the document.\n *\n * @remarks\n * Can be a string (e.g., \"index, follow\") or an object with more granular rules.\n *\n * @example\n * ```tsx\n * robots: \"index, follow\"\n * // or\n * robots: { index: true, follow: true }\n * ```\n *\n * @see https://developer.mozilla.org/docs/Glossary/Robots.txt\n */\n robots?: null | string | Robots | undefined\n\n /**\n * The canonical and alternate URLs for the document.\n *\n * @remarks\n * This field allows defining a canonical URL as well as alternate URLs (such as for multiple languages).\n *\n * @example\n * ```tsx\n * alternates: {\n * canonical: \"https://example.com\",\n * languages: {\n * \"en-US\": \"https://example.com/en-US\"\n * }\n * }\n * ```\n */\n alternates?: null | AlternateURLs | undefined\n\n /**\n * The icons for the document. Defaults to rel=\"icon\".\n *\n * @remarks\n * You can specify a simple URL or an object to differentiate between icon types (e.g., apple-touch-icon).\n *\n * @example\n * ```tsx\n * icons: \"https://example.com/icon.png\"\n * // or\n * icons: {\n * icon: \"https://example.com/icon.png\",\n * apple: \"https://example.com/apple-icon.png\"\n * }\n * ```\n *\n * @see https://developer.mozilla.org/docs/Web/HTML/Attributes/rel#attr-icon\n */\n icons?: null | IconURL | Array<Icon> | Icons | undefined\n\n /**\n * A web application manifest, as defined in the Web Application Manifest specification.\n *\n * @example\n * ```tsx\n * manifest: \"https://example.com/manifest.json\"\n * // Renders: <link rel=\"manifest\" href=\"https://example.com/manifest.json\" />\n * ```\n *\n * @see https://developer.mozilla.org/docs/Web/Manifest\n */\n manifest?: null | string | URL | undefined\n\n /**\n * The Open Graph metadata for the document.\n *\n * @remarks\n * Follows the Open Graph protocol to enrich link previews.\n *\n * @example\n * ```tsx\n * openGraph: {\n * type: \"website\",\n * url: \"https://example.com\",\n * title: \"My Website\",\n * description: \"My Website Description\",\n * siteName: \"My Website\",\n * images: [{ url: \"https://example.com/og.png\" }]\n * }\n * ```\n *\n * @see https://ogp.me/\n */\n openGraph?: null | OpenGraph | undefined\n\n /**\n * The Twitter metadata for the document.\n *\n * @remarks\n * - Used for configuring Twitter Cards and can include details such as `card`, `site`, and `creator`.\n * - Notably, more sites than just Twitter (now X) use this format.\n *\n * @example\n * ```tsx\n * twitter: {\n * card: \"summary_large_image\",\n * site: \"@site\",\n * creator: \"@creator\",\n * images: \"https://example.com/og.png\"\n * }\n * ```\n */\n twitter?: null | Twitter | undefined\n\n /**\n * The Facebook metadata for the document.\n *\n * @remarks\n * Specify either `appId` or `admins` (but not both) to configure Facebook integration.\n *\n * @example\n * ```tsx\n * facebook: { appId: \"12345678\" }\n * // Renders <meta property=\"fb:app_id\" content=\"12345678\" />\n * // or\n * facebook: { admins: [\"12345678\"] }\n * // Renders <meta property=\"fb:admins\" content=\"12345678\" />\n * ```\n */\n facebook?: null | Facebook | undefined\n\n /**\n * The Pinterest metadata for the document to choose whether opt out of rich pin data.\n *\n * @example\n * ```tsx\n * pinterest: { richPin: true }\n * // Renders <meta name=\"pinterest-rich-pin\" content=\"true\" />\n * ```\n */\n pinterest?: null | Pinterest\n\n /**\n * The common verification tokens for the document.\n *\n * @example\n * ```tsx\n * verification: { google: \"1234567890\", yandex: \"1234567890\", \"me\": \"1234567890\" }\n * // Renders <meta name=\"google-site-verification\" content=\"1234567890\" />\n * // <meta name=\"yandex-verification\" content=\"1234567890\" />\n * // <meta name=\"me\" content=\"@me\" />\n * ```\n */\n verification?: Verification | undefined\n\n /**\n * The Apple web app metadata for the document.\n *\n * @example\n * ```tsx\n * appleWebApp: { capable: true, title: \"My Website\", statusBarStyle: \"black-translucent\" }\n * ```\n *\n * @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html\n */\n appleWebApp?: null | boolean | AppleWebApp | undefined\n\n /**\n * Indicates whether devices should interpret certain formats (such as telephone numbers) as actionable links.\n *\n * @example\n * ```tsx\n * formatDetection: { telephone: false }\n * // Renders: <meta name=\"format-detection\" content=\"telephone=no\" />\n * ```\n */\n formatDetection?: null | FormatDetection | undefined\n\n /**\n * The metadata for the iTunes App.\n *\n * @remarks\n * Adds the `name=\"apple-itunes-app\"` meta tag.\n *\n * @example\n * ```tsx\n * itunes: { app: { id: \"123456789\", affiliateData: \"123456789\", appArguments: \"123456789\" } }\n * // Renders <meta name=\"apple-itunes-app\" content=\"app-id=123456789, affiliate-data=123456789, app-arguments=123456789\" />\n * ```\n */\n itunes?: null | ItunesApp | undefined\n\n /**\n * A brief description of the web page.\n *\n * @remarks\n * Rendered as the `abstract` meta tag. This is *not recommended* as it is superseded by `description`.\n *\n * @example\n * ```tsx\n * abstract: \"My Website Description\"\n * // Renders <meta name=\"abstract\" content=\"My Website Description\" />\n * ```\n */\n abstract?: null | string | undefined\n\n /**\n * The Facebook AppLinks metadata for the document.\n *\n * @example\n * ```tsx\n * appLinks: {\n * ios: { appStoreId: \"123456789\", url: \"https://example.com\" },\n * android: { packageName: \"com.example\", url: \"https://example.com\" }\n * }\n *\n * // Renders\n * <meta property=\"al:ios:app_store_id\" content=\"123456789\" />\n * <meta property=\"al:ios:url\" content=\"https://example.com\" />\n * <meta property=\"al:android:package\" content=\"com.example\" />\n * <meta property=\"al:android:url\" content=\"https://example.com\" />\n * ```\n */\n appLinks?: null | AppLinks | undefined\n\n /**\n * The archives link rel property.\n *\n * @example\n * ```tsx\n * archives: \"https://example.com/archives\"\n * // Renders <link rel=\"archives\" href=\"https://example.com/archives\" />\n * ```\n */\n archives?: null | string | Array<string> | undefined\n\n /**\n * The assets link rel property.\n *\n * @example\n * ```tsx\n * assets: \"https://example.com/assets\"\n * // Renders <link rel=\"assets\" href=\"https://example.com/assets\" />\n * ```\n */\n assets?: null | string | Array<string> | undefined\n\n /**\n * The bookmarks link rel property.\n *\n * @remarks\n * Although technically against the HTML spec, this is used in practice.\n *\n * @example\n * ```tsx\n * bookmarks: \"https://example.com/bookmarks\"\n * // Renders <link rel=\"bookmarks\" href=\"https://example.com/bookmarks\" />\n * ```\n */\n bookmarks?: null | string | Array<string> | undefined\n\n /**\n * The pagination link rel properties.\n *\n * @example\n * ```tsx\n * pagination: {\n * previous: \"https://example.com/items?page=1\",\n * next: \"https://example.com/items?page=3\"\n * }\n *\n * // Renders\n * <link rel=\"prev\" href=\"https://example.com/items?page=1\" />\n * <link rel=\"next\" href=\"https://example.com/items?page=3\" />\n * ```\n *\n * @see https://developers.google.com/search/blog/2011/09/pagination-with-relnext-and-relprev\n */\n pagination?: {\n previous?: null | string | URL | undefined\n next?: null | string | URL | undefined\n }\n\n /**\n * The category meta name property.\n *\n * @example\n * ```tsx\n * category: \"My Category\"\n * // Renders <meta name=\"category\" content=\"My Category\" />\n * ```\n */\n category?: null | string | undefined\n\n /**\n * The classification meta name property.\n *\n * @example\n * ```tsx\n * classification: \"My Classification\"\n * // Renders <meta name=\"classification\" content=\"My Classification\" />\n * ```\n */\n classification?: null | string | undefined\n\n /**\n * Arbitrary name/value pairs for additional metadata.\n *\n * @remarks\n * Use this field to define custom meta tags that are not directly supported.\n *\n * @example\n * ```tsx\n * other: { custom: [\"meta1\", \"meta2\"] }\n * ```\n */\n other?:\n | {\n [name: string]: string | number | Array<string | number>\n }\n | undefined\n}\n\n/**\n * ResolvedMetadataWithURLs represents the fully processed metadata after\n * defaults are applied and relative URLs are composed with `metadataBase`.\n */\ninterface ResolvedMetadataWithURLs {\n // origin and base path for absolute urls for various metadata links such as\n // opengraph-image\n metadataBase: string | null | URL\n\n // The Document title and template if defined\n title: null | AbsoluteTemplateString\n\n // The Document description, and optionally the opengraph and twitter descriptions\n description: null | string\n\n // Standard metadata names\n // https://developer.mozilla.org/docs/Web/HTML/Element/meta/name\n applicationName: null | string\n authors: null | Array<Author>\n generator: null | string\n // if you provide an array it will be flattened into a single tag with comma separation\n keywords: null | Array<string>\n referrer: null | ReferrerEnum\n /**\n * @deprecated\n */\n themeColor: null | ThemeColorDescriptor[]\n /**\n * @deprecated\n */\n colorScheme: null | ColorSchemeEnum\n /**\n * @deprecated\n */\n viewport: null | string\n creator: null | string\n publisher: null | string\n\n // https://developer.mozilla.org/docs/Web/HTML/Element/meta/name#other_metadata_names\n robots: null | ResolvedRobots\n\n // The canonical and alternate URLs for this location\n alternates: null | ResolvedAlternateURLs\n\n // Defaults to rel=\"icon\" but the Icons type can be used\n // to get more specific about rel types\n icons: null | ResolvedIcons\n\n openGraph: null | ResolvedOpenGraph\n\n manifest: null | string | URL\n\n twitter: null | ResolvedTwitterMetadata\n\n facebook: null | ResolvedFacebook\n\n pinterest: null | ResolvedPinterest\n\n // common verification tokens\n verification: null | ResolvedVerification\n\n // Apple web app metadata\n // https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html\n appleWebApp: null | ResolvedAppleWebApp\n\n // Should devices try to interpret various formats and make actionable links\n // out of them? The canonical example is telephone numbers on mobile that can\n // be clicked to dial\n formatDetection: null | FormatDetection\n\n // meta name=\"apple-itunes-app\"\n itunes: null | ItunesApp\n\n // meta name=\"abstract\"\n // A brief description of what this web-page is about.\n // Not recommended, superceded by description.\n // https://www.metatags.org/all-meta-tags-overview/meta-name-abstract/\n abstract: null | string\n\n // Facebook AppLinks\n appLinks: null | ResolvedAppLinks\n\n // link rel properties\n archives: null | Array<string>\n assets: null | Array<string>\n bookmarks: null | Array<string> // This is technically against HTML spec but is used in wild\n pagination: {\n previous: null | string\n next: null | string\n }\n\n // meta name properties\n category: null | string\n classification: null | string\n other: null | {\n [name: string]: string | number | Array<string | number>\n }\n}\n\nexport type WithStringifiedURLs<T> = T extends URL\n ? string\n : T extends object\n ? { [K in keyof T]: WithStringifiedURLs<T[K]> }\n : T\n\n/**\n * ResolvedMetadata represents the fully processed metadata after defaults are\n * applied and relative URLs are composed with `metadataBase`.\n */\ntype ResolvedMetadata = WithStringifiedURLs<ResolvedMetadataWithURLs>\n\ntype RobotsRuleBase = {\n allow?: string | string[] | undefined\n disallow?: string | string[] | undefined\n crawlDelay?: number | undefined\n /**\n * Non-standard per-user-agent directives passed through verbatim to the\n * generated `robots.txt`. Keys preserve their casing and array values emit\n * one line per entry.\n *\n * @example\n * ```ts\n * // Seznam rate-limiting\n * // https://o-seznam.cz/napoveda/vyhledavani/en/crawling-control/\n * other: { 'Request-Rate': '10/1m' }\n *\n * // Yandex Clean-param (multiple values)\n * other: { 'Clean-param': ['ref /articles/', 'utm_source /'] }\n * ```\n */\n other?: Record<string, string | number | Array<string | number>> | undefined\n}\n\ntype RobotsFile = {\n // Apply rules for all\n rules:\n | (RobotsRuleBase & {\n userAgent?: string | string[] | undefined\n })\n // Apply rules for specific user agents\n | Array<\n RobotsRuleBase & {\n userAgent: string | string[]\n }\n >\n sitemap?: string | string[] | undefined\n host?: string | undefined\n}\n\ntype SitemapFile = Array<{\n url: string\n lastModified?: string | Date | undefined\n changeFrequency?:\n | 'always'\n | 'hourly'\n | 'daily'\n | 'weekly'\n | 'monthly'\n | 'yearly'\n | 'never'\n | undefined\n priority?: number | undefined\n alternates?:\n | {\n languages?: Languages<string> | undefined\n }\n | undefined\n images?: string[] | undefined\n videos?: Videos[] | undefined\n}>\n\ntype ResolvingMetadata = Promise<ResolvedMetadata>\ndeclare namespace MetadataRoute {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n export type Robots = RobotsFile\n export type Sitemap = SitemapFile\n export type Manifest = ManifestFile\n}\n\n/**\n * Interface for the viewport configuration.\n *\n * @remarks\n * This configuration allows defining properties such as width, initial scale, theme colors,\n * and color scheme.\n *\n * @example\n * ```tsx\n * export const viewport: Viewport = {\n * width: \"device-width\",\n * initialScale: 1,\n * themeColor: [\n * { media: \"(prefers-color-scheme: dark)\", color: \"#000000\" },\n * { media: \"(prefers-color-scheme: light)\", color: \"#ffffff\" }\n * ],\n * colorScheme: \"dark\"\n * }\n * ```\n */\ninterface Viewport extends ViewportLayout {\n /**\n * The theme color for the document.\n *\n * @example\n * ```tsx\n * themeColor: \"#000000\"\n * // Renders <meta name=\"theme-color\" content=\"#000000\" />\n *\n * themeColor: { media: \"(prefers-color-scheme: dark)\", color: \"#000000\" }\n * // Renders <meta name=\"theme-color\" media=\"(prefers-color-scheme: dark)\" content=\"#000000\" />\n *\n * themeColor: [\n * { media: \"(prefers-color-scheme: dark)\", color: \"#000000\" },\n * { media: \"(prefers-color-scheme: light)\", color: \"#ffffff\" }\n * ]\n * // Renders <meta name=\"theme-color\" media=\"(prefers-color-scheme: dark)\" content=\"#000000\" />\n * // Renders <meta name=\"theme-color\" media=\"(prefers-color-scheme: light)\" content=\"#ffffff\" />\n * ```\n */\n themeColor?:\n | null\n | string\n | ThemeColorDescriptor\n | ThemeColorDescriptor[]\n | undefined\n\n /**\n * The color scheme for the document.\n *\n * @example\n * ```tsx\n * colorScheme: \"dark\"\n * // Renders <meta name=\"color-scheme\" content=\"dark\" />\n * ```\n */\n colorScheme?: null | ColorSchemeEnum | undefined\n}\n\ninterface ResolvedViewport extends ViewportLayout {\n themeColor: null | ThemeColorDescriptor[]\n colorScheme: null | ColorSchemeEnum\n}\n\ntype ResolvingViewport = Promise<ResolvedViewport>\n\nexport type {\n Metadata,\n ResolvedMetadata,\n ResolvedMetadataWithURLs,\n ResolvingMetadata,\n MetadataRoute,\n Viewport,\n ResolvingViewport,\n ResolvedViewport,\n}\n"],"names":[],"mappings":"AAAA;;;;;;;;;;;;CAYC,GA8xBD,WASC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-types.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ /**
2
+ *
3
+ * Metadata types
4
+ *
5
+ */ export { };
6
+
7
+ //# sourceMappingURL=metadata-types.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/metadata-types.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/metadata-types.ts"],"sourcesContent":["/**\n *\n * Metadata types\n *\n */\n\nexport interface DeprecatedMetadataFields {\n /**\n * Deprecated options that have a preferred method\n * @deprecated Use appleWebApp instead\n */\n 'apple-touch-fullscreen'?: never | undefined\n\n /**\n * Obsolete since iOS 7.\n * @see https://web.dev/apple-touch-icon/\n * @deprecated Use icons.apple instead\n */\n 'apple-touch-icon-precomposed'?: never | undefined\n}\n\nexport type TemplateString =\n | DefaultTemplateString\n | AbsoluteTemplateString\n | AbsoluteString\nexport type DefaultTemplateString = {\n default: string\n template: string\n}\nexport type AbsoluteTemplateString = {\n absolute: string\n template: string | null\n}\nexport type AbsoluteString = {\n absolute: string\n}\n\nexport type Author = {\n // renders as <link rel=\"author\"...\n url?: string | URL | undefined\n // renders as <meta name=\"author\"...\n name?: string | undefined\n}\n\n// does not include \"unsafe-URL\". to use this users should\n// use '\"unsafe-URL\" as ReferrerEnum'\nexport type ReferrerEnum =\n | 'no-referrer'\n | 'origin'\n | 'no-referrer-when-downgrade'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n\nexport type ColorSchemeEnum =\n | 'normal'\n | 'light'\n | 'dark'\n | 'light dark'\n | 'dark light'\n | 'only light'\n\ntype RobotsInfo = {\n // all and none will be inferred from index/follow boolean options\n index?: boolean | undefined\n follow?: boolean | undefined\n\n /** @deprecated set index to false instead */\n noindex?: never | undefined\n /** @deprecated set follow to false instead */\n nofollow?: never | undefined\n\n noarchive?: boolean | undefined\n nosnippet?: boolean | undefined\n noimageindex?: boolean | undefined\n nocache?: boolean | undefined\n notranslate?: boolean | undefined\n indexifembedded?: boolean | undefined\n nositelinkssearchbox?: boolean | undefined\n unavailable_after?: string | undefined\n 'max-video-preview'?: number | string | undefined\n 'max-image-preview'?: 'none' | 'standard' | 'large' | undefined\n 'max-snippet'?: number | undefined\n}\nexport type Robots = RobotsInfo & {\n // if you want to specify an alternate robots just for google\n googleBot?: string | RobotsInfo | undefined\n}\n\nexport type ResolvedRobots = {\n basic: string | null\n googleBot: string | null\n}\n\nexport type IconURL = string | URL\nexport type Icon = IconURL | IconDescriptor\nexport type IconDescriptor = {\n url: string | URL\n type?: string | undefined\n sizes?: string | undefined\n color?: string | undefined\n /** defaults to rel=\"icon\" unless superseded by Icons map */\n rel?: string | undefined\n media?: string | undefined\n /**\n * @see https://developer.mozilla.org/docs/Web/API/HTMLImageElement/fetchPriority\n */\n fetchPriority?: 'high' | 'low' | 'auto' | undefined\n}\n\nexport type Icons = {\n /** rel=\"icon\" */\n icon?: Icon | Icon[] | undefined\n /** rel=\"shortcut icon\" */\n shortcut?: Icon | Icon[] | undefined\n /**\n * @see https://developer.apple.com/library/archive/documentation/AppleApplications/Reference/SafariWebContent/ConfiguringWebApplications/ConfiguringWebApplications.html\n * rel=\"apple-touch-icon\"\n */\n apple?: Icon | Icon[] | undefined\n /** rel inferred from descriptor, defaults to \"icon\" */\n other?: IconDescriptor | IconDescriptor[] | undefined\n}\n\nexport type Verification = {\n google?: null | string | number | (string | number)[] | undefined\n yahoo?: null | string | number | (string | number)[] | undefined\n yandex?: null | string | number | (string | number)[] | undefined\n me?: null | string | number | (string | number)[] | undefined\n // if you ad-hoc additional verification\n other?:\n | {\n [name: string]: string | number | (string | number)[]\n }\n | undefined\n}\n\nexport type ResolvedVerification = {\n google?: null | (string | number)[] | undefined\n yahoo?: null | (string | number)[] | undefined\n yandex?: null | (string | number)[] | undefined\n me?: null | (string | number)[] | undefined\n other?:\n | {\n [name: string]: (string | number)[]\n }\n | undefined\n}\n\nexport type ResolvedIcons = {\n icon: IconDescriptor[]\n apple: IconDescriptor[]\n shortcut?: IconDescriptor[] | undefined\n other?: IconDescriptor[] | undefined\n}\n\nexport type ThemeColorDescriptor = {\n color: string\n media?: string | undefined\n}\n\nexport type Restriction = {\n relationship: 'allow' | 'deny'\n content: string\n}\n\nexport type Videos = {\n title: string\n thumbnail_loc: string\n description: string\n content_loc?: string | undefined\n player_loc?: string | undefined\n duration?: number | undefined\n expiration_date?: Date | string | undefined\n rating?: number | undefined\n view_count?: number | undefined\n publication_date?: Date | string | undefined\n family_friendly?: 'yes' | 'no' | undefined\n restriction?: Restriction | undefined\n platform?: Restriction | undefined\n requires_subscription?: 'yes' | 'no' | undefined\n uploader?:\n | {\n info?: string | undefined\n content?: string | undefined\n }\n | undefined\n live?: 'yes' | 'no' | undefined\n tag?: string | undefined\n}\n"],"names":[],"mappings":"AAAA;;;;CAIC,GAmKD,WAuBC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/opengraph-types.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ export { };
2
+
3
+ //# sourceMappingURL=opengraph-types.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/opengraph-types.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/opengraph-types.ts"],"sourcesContent":["import type { AbsoluteTemplateString, TemplateString } from './metadata-types'\n\nexport type OpenGraphType =\n | 'article'\n | 'book'\n | 'music.song'\n | 'music.album'\n | 'music.playlist'\n | 'music.radio_station'\n | 'profile'\n | 'website'\n | 'video.tv_show'\n | 'video.other'\n | 'video.movie'\n | 'video.episode'\n\nexport type OpenGraph =\n | OpenGraphWebsite\n | OpenGraphArticle\n | OpenGraphBook\n | OpenGraphProfile\n | OpenGraphMusicSong\n | OpenGraphMusicAlbum\n | OpenGraphMusicPlaylist\n | OpenGraphRadioStation\n | OpenGraphVideoMovie\n | OpenGraphVideoEpisode\n | OpenGraphVideoTVShow\n | OpenGraphVideoOther\n | OpenGraphMetadata\n\n// update this type to reflect actual locales\ntype Locale = string\n\ntype OpenGraphMetadata = {\n determiner?: 'a' | 'an' | 'the' | 'auto' | '' | undefined\n title?: string | TemplateString | undefined\n description?: string | undefined\n emails?: string | Array<string> | undefined\n phoneNumbers?: string | Array<string> | undefined\n faxNumbers?: string | Array<string> | undefined\n siteName?: string | undefined\n locale?: Locale | undefined\n alternateLocale?: Locale | Array<Locale> | undefined\n images?: OGImage | Array<OGImage> | undefined\n audio?: OGAudio | Array<OGAudio> | undefined\n videos?: OGVideo | Array<OGVideo> | undefined\n url?: null | string | URL | undefined\n countryName?: string | undefined\n ttl?: number | undefined\n}\ntype OpenGraphWebsite = OpenGraphMetadata & {\n type: 'website'\n}\ntype OpenGraphArticle = OpenGraphMetadata & {\n type: 'article'\n publishedTime?: string | undefined // datetime\n modifiedTime?: string | undefined // datetime\n expirationTime?: string | undefined // datetime\n authors?: null | string | URL | Array<string | URL> | undefined\n section?: null | string | undefined\n tags?: null | string | Array<string> | undefined\n}\ntype OpenGraphBook = OpenGraphMetadata & {\n type: 'book'\n isbn?: null | string | undefined\n releaseDate?: null | string | undefined // datetime\n authors?: null | string | URL | Array<string | URL> | undefined\n tags?: null | string | Array<string> | undefined\n}\ntype OpenGraphProfile = OpenGraphMetadata & {\n type: 'profile'\n firstName?: null | string | undefined\n lastName?: null | string | undefined\n username?: null | string | undefined\n gender?: null | string | undefined\n}\ntype OpenGraphMusicSong = OpenGraphMetadata & {\n type: 'music.song'\n duration?: null | number | undefined\n albums?:\n | null\n | string\n | URL\n | OGAlbum\n | Array<string | URL | OGAlbum>\n | undefined\n musicians?: null | string | URL | Array<string | URL> | undefined\n}\ntype OpenGraphMusicAlbum = OpenGraphMetadata & {\n type: 'music.album'\n songs?:\n | null\n | string\n | URL\n | OGSong\n | Array<string | URL | OGSong>\n | undefined\n musicians?: null | string | URL | Array<string | URL> | undefined\n releaseDate?: null | string | undefined // datetime\n}\ntype OpenGraphMusicPlaylist = OpenGraphMetadata & {\n type: 'music.playlist'\n songs?:\n | null\n | string\n | URL\n | OGSong\n | Array<string | URL | OGSong>\n | undefined\n creators?: null | string | URL | Array<string | URL> | undefined\n}\ntype OpenGraphRadioStation = OpenGraphMetadata & {\n type: 'music.radio_station'\n creators?: null | string | URL | Array<string | URL> | undefined\n}\ntype OpenGraphVideoMovie = OpenGraphMetadata & {\n type: 'video.movie'\n actors?:\n | null\n | string\n | URL\n | OGActor\n | Array<string | URL | OGActor>\n | undefined\n directors?: null | string | URL | Array<string | URL> | undefined\n writers?: null | string | URL | Array<string | URL> | undefined\n duration?: null | number | undefined\n releaseDate?: null | string | undefined // datetime\n tags?: null | string | Array<string> | undefined\n}\ntype OpenGraphVideoEpisode = OpenGraphMetadata & {\n type: 'video.episode'\n actors?:\n | null\n | string\n | URL\n | OGActor\n | Array<string | URL | OGActor>\n | undefined\n directors?: null | string | URL | Array<string | URL> | undefined\n writers?: null | string | URL | Array<string | URL> | undefined\n duration?: null | number | undefined\n releaseDate?: null | string | undefined // datetime\n tags?: null | string | Array<string> | undefined\n series?: null | string | URL | undefined\n}\ntype OpenGraphVideoTVShow = OpenGraphMetadata & {\n type: 'video.tv_show'\n}\ntype OpenGraphVideoOther = OpenGraphMetadata & {\n type: 'video.other'\n}\n\ntype OGImage = string | OGImageDescriptor | URL\ntype OGImageDescriptor = {\n url: string | URL\n secureUrl?: string | URL | undefined\n alt?: string | undefined\n type?: string | undefined\n width?: string | number | undefined\n height?: string | number | undefined\n}\ntype OGAudio = string | OGAudioDescriptor | URL\ntype OGAudioDescriptor = {\n url: string | URL\n secureUrl?: string | URL | undefined\n type?: string | undefined\n}\ntype OGVideo = string | OGVideoDescriptor | URL\ntype OGVideoDescriptor = {\n url: string | URL\n secureUrl?: string | URL | undefined\n type?: string | undefined\n width?: string | number | undefined\n height?: string | number | undefined\n}\n\nexport type ResolvedOpenGraph =\n | ResolvedOpenGraphWebsite\n | ResolvedOpenGraphArticle\n | ResolvedOpenGraphBook\n | ResolvedOpenGraphProfile\n | ResolvedOpenGraphMusicSong\n | ResolvedOpenGraphMusicAlbum\n | ResolvedOpenGraphMusicPlaylist\n | ResolvedOpenGraphRadioStation\n | ResolvedOpenGraphVideoMovie\n | ResolvedOpenGraphVideoEpisode\n | ResolvedOpenGraphVideoTVShow\n | ResolvedOpenGraphVideoOther\n | ResolvedOpenGraphMetadata\n\ntype ResolvedOpenGraphMetadata = {\n determiner?: 'a' | 'an' | 'the' | 'auto' | '' | undefined\n title: AbsoluteTemplateString\n description?: string | undefined\n emails?: Array<string> | undefined\n phoneNumbers?: Array<string> | undefined\n faxNumbers?: Array<string> | undefined\n siteName?: string | undefined\n locale?: Locale | undefined\n alternateLocale?: Array<Locale> | undefined\n images?: Array<OGImage> | undefined\n audio?: Array<OGAudio> | undefined\n videos?: Array<OGVideo> | undefined\n url: null | URL | string\n countryName?: string | undefined\n ttl?: number | undefined\n}\ntype ResolvedOpenGraphWebsite = ResolvedOpenGraphMetadata & {\n type: 'website'\n}\ntype ResolvedOpenGraphArticle = ResolvedOpenGraphMetadata & {\n type: 'article'\n publishedTime?: string | undefined // datetime\n modifiedTime?: string | undefined // datetime\n expirationTime?: string | undefined // datetime\n authors?: Array<string> | undefined\n section?: string | undefined\n tags?: Array<string> | undefined\n}\ntype ResolvedOpenGraphBook = ResolvedOpenGraphMetadata & {\n type: 'book'\n isbn?: string | undefined\n releaseDate?: string | undefined // datetime\n authors?: Array<string> | undefined\n tags?: Array<string> | undefined\n}\ntype ResolvedOpenGraphProfile = ResolvedOpenGraphMetadata & {\n type: 'profile'\n firstName?: string | undefined\n lastName?: string | undefined\n username?: string | undefined\n gender?: string | undefined\n}\ntype ResolvedOpenGraphMusicSong = ResolvedOpenGraphMetadata & {\n type: 'music.song'\n duration?: number | undefined\n albums?: Array<OGAlbum> | undefined\n musicians?: Array<string | URL> | undefined\n}\ntype ResolvedOpenGraphMusicAlbum = ResolvedOpenGraphMetadata & {\n type: 'music.album'\n songs?: Array<string | URL | OGSong> | undefined\n musicians?: Array<string | URL> | undefined\n releaseDate?: string | undefined // datetime\n}\ntype ResolvedOpenGraphMusicPlaylist = ResolvedOpenGraphMetadata & {\n type: 'music.playlist'\n songs?: Array<string | URL | OGSong> | undefined\n creators?: Array<string | URL> | undefined\n}\ntype ResolvedOpenGraphRadioStation = ResolvedOpenGraphMetadata & {\n type: 'music.radio_station'\n creators?: Array<string | URL> | undefined\n}\ntype ResolvedOpenGraphVideoMovie = ResolvedOpenGraphMetadata & {\n type: 'video.movie'\n actors?: Array<string | URL | OGActor> | undefined\n directors?: Array<string | URL> | undefined\n writers?: Array<string | URL> | undefined\n duration?: number | undefined\n releaseDate?: string | undefined // datetime\n tags?: Array<string> | undefined\n}\ntype ResolvedOpenGraphVideoEpisode = ResolvedOpenGraphMetadata & {\n type: 'video.episode'\n actors?: Array<string | URL | OGActor> | undefined\n directors?: Array<string | URL> | undefined\n writers?: Array<string | URL> | undefined\n duration?: number | undefined\n releaseDate?: string | undefined // datetime\n tags?: Array<string> | undefined\n series?: string | URL | undefined\n}\ntype ResolvedOpenGraphVideoTVShow = ResolvedOpenGraphMetadata & {\n type: 'video.tv_show'\n}\ntype ResolvedOpenGraphVideoOther = ResolvedOpenGraphMetadata & {\n type: 'video.other'\n}\n\ntype OGSong = {\n url: string | URL\n disc?: number | undefined\n track?: number | undefined\n}\ntype OGAlbum = {\n url: string | URL\n disc?: number | undefined\n track?: number | undefined\n}\ntype OGActor = {\n url: string | URL\n role?: string | undefined\n}\n"],"names":[],"mappings":"AAkLA,WAa6B","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/resolvers.js ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ export { };
2
+
3
+ //# sourceMappingURL=resolvers.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/resolvers.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/resolvers.ts"],"sourcesContent":["import type { Metadata, ResolvedMetadataWithURLs } from './metadata-interface'\n\nexport type FieldResolver<\n Key extends keyof Data & keyof ResolvedData,\n Data = Metadata,\n ResolvedData = ResolvedMetadataWithURLs,\n> = (T: Data[Key]) => ResolvedData[Key]\n\nexport type FieldResolverExtraArgs<\n Key extends keyof Data & keyof ResolvedData,\n ExtraArgs extends unknown[] = any[],\n Data = Metadata,\n ResolvedData = ResolvedMetadataWithURLs,\n> = (T: Data[Key], ...args: ExtraArgs) => ResolvedData[Key]\n\nexport type AsyncFieldResolverExtraArgs<\n Key extends keyof Data & keyof ResolvedData,\n ExtraArgs extends unknown[] = any[],\n Data = Metadata,\n ResolvedData = ResolvedMetadataWithURLs,\n> = (T: Data[Key], ...args: ExtraArgs) => Promise<ResolvedData[Key]>\n\nexport type MetadataContext = {\n trailingSlash: boolean\n isStaticMetadataRouteFile: boolean\n}\n"],"names":[],"mappings":"AAsBA,WAGC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/metadata/types/twitter-types.js ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ // Reference: https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup
2
+ export { };
3
+
4
+ //# sourceMappingURL=twitter-types.js.map
e-commerce/node_modules/next/dist/esm/lib/metadata/types/twitter-types.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../../../src/lib/metadata/types/twitter-types.ts"],"sourcesContent":["// Reference: https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup\n\nimport type { AbsoluteTemplateString, TemplateString } from './metadata-types'\n\nexport type Twitter =\n | TwitterSummary\n | TwitterSummaryLargeImage\n | TwitterPlayer\n | TwitterApp\n | TwitterMetadata\n\ntype TwitterMetadata = {\n // defaults to card=\"summary\"\n site?: null | string | undefined // username for account associated to the site itself\n siteId?: null | string | undefined // id for account associated to the site itself\n creator?: null | string | undefined // username for the account associated to the creator of the content on the site\n creatorId?: null | string | undefined // id for the account associated to the creator of the content on the site\n description?: null | string | undefined\n title?: string | TemplateString | undefined\n images?: TwitterImage | Array<TwitterImage> | undefined\n}\ntype TwitterSummary = TwitterMetadata & {\n card: 'summary'\n}\ntype TwitterSummaryLargeImage = TwitterMetadata & {\n card: 'summary_large_image'\n}\ntype TwitterPlayer = TwitterMetadata & {\n card: 'player'\n players: TwitterPlayerDescriptor | Array<TwitterPlayerDescriptor>\n}\ntype TwitterApp = TwitterMetadata & {\n card: 'app'\n app: TwitterAppDescriptor\n}\nexport type TwitterAppDescriptor = {\n id: {\n iphone?: string | number | undefined\n ipad?: string | number | undefined\n googleplay?: string | undefined\n }\n url?:\n | {\n iphone?: string | URL | undefined\n ipad?: string | URL | undefined\n googleplay?: string | URL | undefined\n }\n | undefined\n name?: string | undefined\n}\n\ntype TwitterImage = string | TwitterImageDescriptor | URL\ntype TwitterImageDescriptor = {\n url: string | URL\n alt?: string | undefined\n secureUrl?: string | URL | undefined\n type?: string | undefined\n width?: string | number | undefined\n height?: string | number | undefined\n}\ntype TwitterPlayerDescriptor = {\n playerUrl: string | URL\n streamUrl: string | URL\n width: number\n height: number\n}\n\ntype ResolvedTwitterImage = {\n url: string | URL\n alt?: string | undefined\n secureUrl?: string | URL | undefined\n type?: string | undefined\n width?: string | number | undefined\n height?: string | number | undefined\n}\ntype ResolvedTwitterSummary = {\n site: string | null\n siteId: string | null\n creator: string | null\n creatorId: string | null\n description: string | null\n title: AbsoluteTemplateString\n images?: Array<ResolvedTwitterImage> | undefined\n}\ntype ResolvedTwitterPlayer = ResolvedTwitterSummary & {\n players: Array<TwitterPlayerDescriptor>\n}\ntype ResolvedTwitterApp = ResolvedTwitterSummary & { app: TwitterAppDescriptor }\n\nexport type ResolvedTwitterMetadata =\n | ({ card: 'summary' } & ResolvedTwitterSummary)\n | ({ card: 'summary_large_image' } & ResolvedTwitterSummary)\n | ({ card: 'player' } & ResolvedTwitterPlayer)\n | ({ card: 'app' } & ResolvedTwitterApp)\n"],"names":[],"mappings":"AAAA,8FAA8F;AAyF9F,WAI0C","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/mime-type.js ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * Map of images extensions to MIME types
3
+ */ export const imageExtMimeTypeMap = {
4
+ jpeg: 'image/jpeg',
5
+ png: 'image/png',
6
+ ico: 'image/x-icon',
7
+ svg: 'image/svg+xml'
8
+ };
9
+
10
+ //# sourceMappingURL=mime-type.js.map
e-commerce/node_modules/next/dist/esm/lib/mime-type.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/mime-type.ts"],"sourcesContent":["/**\n * Map of images extensions to MIME types\n */\nexport const imageExtMimeTypeMap = {\n jpeg: 'image/jpeg',\n png: 'image/png',\n ico: 'image/x-icon',\n svg: 'image/svg+xml',\n} as const\n"],"names":["imageExtMimeTypeMap","jpeg","png","ico","svg"],"mappings":"AAAA;;CAEC,GACD,OAAO,MAAMA,sBAAsB;IACjCC,MAAM;IACNC,KAAK;IACLC,KAAK;IACLC,KAAK;AACP,EAAU","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/mkcert.js ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { X509Certificate, createPrivateKey } from 'node:crypto';
4
+ import { getCacheDirectory } from './helpers/get-cache-directory';
5
+ import * as Log from '../build/output/log';
6
+ import { execSync } from 'node:child_process';
7
+ const { WritableStream } = require('node:stream/web');
8
+ const MKCERT_VERSION = 'v1.4.4';
9
+ function getBinaryName() {
10
+ const platform = process.platform;
11
+ const arch = process.arch === 'x64' ? 'amd64' : process.arch;
12
+ if (platform === 'win32') {
13
+ return `mkcert-${MKCERT_VERSION}-windows-${arch}.exe`;
14
+ }
15
+ if (platform === 'darwin') {
16
+ return `mkcert-${MKCERT_VERSION}-darwin-${arch}`;
17
+ }
18
+ if (platform === 'linux') {
19
+ return `mkcert-${MKCERT_VERSION}-linux-${arch}`;
20
+ }
21
+ throw new Error(`Unsupported platform: ${platform}`);
22
+ }
23
+ async function downloadBinary() {
24
+ try {
25
+ const binaryName = getBinaryName();
26
+ const cacheDirectory = getCacheDirectory('mkcert');
27
+ const binaryPath = path.join(cacheDirectory, binaryName);
28
+ if (fs.existsSync(binaryPath)) {
29
+ return binaryPath;
30
+ }
31
+ const downloadUrl = `https://github.com/FiloSottile/mkcert/releases/download/${MKCERT_VERSION}/${binaryName}`;
32
+ await fs.promises.mkdir(cacheDirectory, {
33
+ recursive: true
34
+ });
35
+ Log.info(`Downloading mkcert package...`);
36
+ const response = await fetch(downloadUrl);
37
+ if (!response.ok || !response.body) {
38
+ throw new Error(`request failed with status ${response.status}`);
39
+ }
40
+ Log.info(`Download response was successful, writing to disk`);
41
+ const binaryWriteStream = fs.createWriteStream(binaryPath);
42
+ await response.body.pipeTo(new WritableStream({
43
+ write (chunk) {
44
+ return new Promise((resolve, reject)=>{
45
+ binaryWriteStream.write(chunk, (error)=>{
46
+ if (error) {
47
+ reject(error);
48
+ return;
49
+ }
50
+ resolve();
51
+ });
52
+ });
53
+ },
54
+ close () {
55
+ return new Promise((resolve, reject)=>{
56
+ binaryWriteStream.close((error)=>{
57
+ if (error) {
58
+ reject(error);
59
+ return;
60
+ }
61
+ resolve();
62
+ });
63
+ });
64
+ }
65
+ }));
66
+ await fs.promises.chmod(binaryPath, 493);
67
+ return binaryPath;
68
+ } catch (err) {
69
+ Log.error('Error downloading mkcert:', err);
70
+ }
71
+ }
72
+ export async function createSelfSignedCertificate(host, certDir = 'certificates') {
73
+ try {
74
+ const binaryPath = await downloadBinary();
75
+ if (!binaryPath) throw new Error('missing mkcert binary');
76
+ const resolvedCertDir = path.resolve(process.cwd(), `./${certDir}`);
77
+ await fs.promises.mkdir(resolvedCertDir, {
78
+ recursive: true
79
+ });
80
+ const keyPath = path.resolve(resolvedCertDir, 'localhost-key.pem');
81
+ const certPath = path.resolve(resolvedCertDir, 'localhost.pem');
82
+ if (fs.existsSync(keyPath) && fs.existsSync(certPath)) {
83
+ const cert = new X509Certificate(fs.readFileSync(certPath));
84
+ const key = fs.readFileSync(keyPath);
85
+ if (cert.checkHost(host ?? 'localhost') && cert.checkPrivateKey(createPrivateKey(key))) {
86
+ Log.info('Using already generated self signed certificate');
87
+ const caLocation = execSync(`"${binaryPath}" -CAROOT`).toString().trim();
88
+ return {
89
+ key: keyPath,
90
+ cert: certPath,
91
+ rootCA: `${caLocation}/rootCA.pem`
92
+ };
93
+ }
94
+ }
95
+ Log.info('Attempting to generate self signed certificate. This may prompt for your password');
96
+ const defaultHosts = [
97
+ 'localhost',
98
+ '127.0.0.1',
99
+ '::1'
100
+ ];
101
+ const hosts = host && !defaultHosts.includes(host) ? [
102
+ ...defaultHosts,
103
+ host
104
+ ] : defaultHosts;
105
+ execSync(`"${binaryPath}" -install -key-file "${keyPath}" -cert-file "${certPath}" ${hosts.join(' ')}`, {
106
+ stdio: 'ignore'
107
+ });
108
+ const caLocation = execSync(`"${binaryPath}" -CAROOT`).toString().trim();
109
+ if (!fs.existsSync(keyPath) || !fs.existsSync(certPath)) {
110
+ throw new Error('Certificate files not found');
111
+ }
112
+ Log.info(`CA Root certificate created in ${caLocation}`);
113
+ Log.info(`Certificates created in ${resolvedCertDir}`);
114
+ const gitignorePath = path.resolve(process.cwd(), './.gitignore');
115
+ if (fs.existsSync(gitignorePath)) {
116
+ const gitignore = await fs.promises.readFile(gitignorePath, 'utf8');
117
+ if (!gitignore.includes(certDir)) {
118
+ Log.info('Adding certificates to .gitignore');
119
+ await fs.promises.appendFile(gitignorePath, `\n${certDir}`);
120
+ }
121
+ }
122
+ return {
123
+ key: keyPath,
124
+ cert: certPath,
125
+ rootCA: `${caLocation}/rootCA.pem`
126
+ };
127
+ } catch (err) {
128
+ Log.error('Failed to generate self-signed certificate. Falling back to http.', err);
129
+ }
130
+ }
131
+
132
+ //# sourceMappingURL=mkcert.js.map
e-commerce/node_modules/next/dist/esm/lib/mkcert.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/mkcert.ts"],"sourcesContent":["import fs from 'node:fs'\nimport path from 'node:path'\nimport { X509Certificate, createPrivateKey } from 'node:crypto'\nimport { getCacheDirectory } from './helpers/get-cache-directory'\nimport * as Log from '../build/output/log'\nimport { execSync } from 'node:child_process'\nconst { WritableStream } =\n require('node:stream/web') as typeof import('node:stream/web')\n\nconst MKCERT_VERSION = 'v1.4.4'\n\nexport interface SelfSignedCertificate {\n key: string\n cert: string\n rootCA?: string\n}\n\nfunction getBinaryName() {\n const platform = process.platform\n const arch = process.arch === 'x64' ? 'amd64' : process.arch\n\n if (platform === 'win32') {\n return `mkcert-${MKCERT_VERSION}-windows-${arch}.exe`\n }\n if (platform === 'darwin') {\n return `mkcert-${MKCERT_VERSION}-darwin-${arch}`\n }\n if (platform === 'linux') {\n return `mkcert-${MKCERT_VERSION}-linux-${arch}`\n }\n\n throw new Error(`Unsupported platform: ${platform}`)\n}\n\nasync function downloadBinary() {\n try {\n const binaryName = getBinaryName()\n const cacheDirectory = getCacheDirectory('mkcert')\n const binaryPath = path.join(cacheDirectory, binaryName)\n\n if (fs.existsSync(binaryPath)) {\n return binaryPath\n }\n\n const downloadUrl = `https://github.com/FiloSottile/mkcert/releases/download/${MKCERT_VERSION}/${binaryName}`\n\n await fs.promises.mkdir(cacheDirectory, { recursive: true })\n\n Log.info(`Downloading mkcert package...`)\n\n const response = await fetch(downloadUrl)\n\n if (!response.ok || !response.body) {\n throw new Error(`request failed with status ${response.status}`)\n }\n\n Log.info(`Download response was successful, writing to disk`)\n\n const binaryWriteStream = fs.createWriteStream(binaryPath)\n\n await response.body.pipeTo(\n new WritableStream({\n write(chunk) {\n return new Promise((resolve, reject) => {\n binaryWriteStream.write(chunk, (error) => {\n if (error) {\n reject(error)\n return\n }\n\n resolve()\n })\n })\n },\n close() {\n return new Promise((resolve, reject) => {\n binaryWriteStream.close((error) => {\n if (error) {\n reject(error)\n return\n }\n\n resolve()\n })\n })\n },\n })\n )\n\n await fs.promises.chmod(binaryPath, 0o755)\n\n return binaryPath\n } catch (err) {\n Log.error('Error downloading mkcert:', err)\n }\n}\n\nexport async function createSelfSignedCertificate(\n host?: string,\n certDir: string = 'certificates'\n): Promise<SelfSignedCertificate | undefined> {\n try {\n const binaryPath = await downloadBinary()\n if (!binaryPath) throw new Error('missing mkcert binary')\n\n const resolvedCertDir = path.resolve(process.cwd(), `./${certDir}`)\n\n await fs.promises.mkdir(resolvedCertDir, {\n recursive: true,\n })\n\n const keyPath = path.resolve(resolvedCertDir, 'localhost-key.pem')\n const certPath = path.resolve(resolvedCertDir, 'localhost.pem')\n\n if (fs.existsSync(keyPath) && fs.existsSync(certPath)) {\n const cert = new X509Certificate(fs.readFileSync(certPath))\n const key = fs.readFileSync(keyPath)\n\n if (\n cert.checkHost(host ?? 'localhost') &&\n cert.checkPrivateKey(createPrivateKey(key))\n ) {\n Log.info('Using already generated self signed certificate')\n const caLocation = execSync(`\"${binaryPath}\" -CAROOT`).toString().trim()\n\n return {\n key: keyPath,\n cert: certPath,\n rootCA: `${caLocation}/rootCA.pem`,\n }\n }\n }\n\n Log.info(\n 'Attempting to generate self signed certificate. This may prompt for your password'\n )\n\n const defaultHosts = ['localhost', '127.0.0.1', '::1']\n\n const hosts =\n host && !defaultHosts.includes(host)\n ? [...defaultHosts, host]\n : defaultHosts\n\n execSync(\n `\"${binaryPath}\" -install -key-file \"${keyPath}\" -cert-file \"${certPath}\" ${hosts.join(\n ' '\n )}`,\n { stdio: 'ignore' }\n )\n\n const caLocation = execSync(`\"${binaryPath}\" -CAROOT`).toString().trim()\n\n if (!fs.existsSync(keyPath) || !fs.existsSync(certPath)) {\n throw new Error('Certificate files not found')\n }\n\n Log.info(`CA Root certificate created in ${caLocation}`)\n Log.info(`Certificates created in ${resolvedCertDir}`)\n\n const gitignorePath = path.resolve(process.cwd(), './.gitignore')\n\n if (fs.existsSync(gitignorePath)) {\n const gitignore = await fs.promises.readFile(gitignorePath, 'utf8')\n if (!gitignore.includes(certDir)) {\n Log.info('Adding certificates to .gitignore')\n\n await fs.promises.appendFile(gitignorePath, `\\n${certDir}`)\n }\n }\n\n return {\n key: keyPath,\n cert: certPath,\n rootCA: `${caLocation}/rootCA.pem`,\n }\n } catch (err) {\n Log.error(\n 'Failed to generate self-signed certificate. Falling back to http.',\n err\n )\n }\n}\n"],"names":["fs","path","X509Certificate","createPrivateKey","getCacheDirectory","Log","execSync","WritableStream","require","MKCERT_VERSION","getBinaryName","platform","process","arch","Error","downloadBinary","binaryName","cacheDirectory","binaryPath","join","existsSync","downloadUrl","promises","mkdir","recursive","info","response","fetch","ok","body","status","binaryWriteStream","createWriteStream","pipeTo","write","chunk","Promise","resolve","reject","error","close","chmod","err","createSelfSignedCertificate","host","certDir","resolvedCertDir","cwd","keyPath","certPath","cert","readFileSync","key","checkHost","checkPrivateKey","caLocation","toString","trim","rootCA","defaultHosts","hosts","includes","stdio","gitignorePath","gitignore","readFile","appendFile"],"mappings":"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","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/multi-file-writer.js ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import path from '../shared/lib/isomorphic/path';
2
+ /**
3
+ * MultiFileWriter is a utility for writing multiple files in parallel that
4
+ * guarantees that all files will be written after their containing directory
5
+ * is created, and that the directory will only be created once.
6
+ */ export class MultiFileWriter {
7
+ constructor(/**
8
+ * The file system methods to use.
9
+ */ fs){
10
+ this.fs = fs;
11
+ this.tasks = [];
12
+ }
13
+ /**
14
+ * Finds or creates a task for a directory.
15
+ *
16
+ * @param directory - The directory to find or create a task for.
17
+ * @returns The task for the directory.
18
+ */ findOrCreateTask(directory) {
19
+ // See if this directory already has a task to create it.
20
+ for (const task of this.tasks){
21
+ if (task[0] === directory) {
22
+ return task;
23
+ }
24
+ }
25
+ const promise = this.fs.mkdir(directory);
26
+ // Attach a catch handler so that it doesn't throw an unhandled promise
27
+ // rejection warning.
28
+ promise.catch(()=>{});
29
+ // Otherwise, create a new task for this directory.
30
+ const task = [
31
+ directory,
32
+ promise,
33
+ []
34
+ ];
35
+ this.tasks.push(task);
36
+ return task;
37
+ }
38
+ /**
39
+ * Appends a file to the writer to be written after its containing directory
40
+ * is created. The file writer should be awaited after all the files have been
41
+ * appended. Any async operation that occurs between appending and awaiting
42
+ * may cause an unhandled promise rejection warning and potentially crash the
43
+ * process.
44
+ *
45
+ * @param filePath - The path to the file to write.
46
+ * @param data - The data to write to the file.
47
+ */ append(filePath, data) {
48
+ // Find or create a task for the directory that contains the file.
49
+ const task = this.findOrCreateTask(path.dirname(filePath));
50
+ const promise = task[1].then(()=>this.fs.writeFile(filePath, data));
51
+ // Attach a catch handler so that it doesn't throw an unhandled promise
52
+ // rejection warning.
53
+ promise.catch(()=>{});
54
+ // Add the file write to the task AFTER the directory promise has resolved.
55
+ task[2].push(promise);
56
+ }
57
+ /**
58
+ * Returns a promise that resolves when all the files have been written.
59
+ */ wait() {
60
+ return Promise.all(this.tasks.flatMap((task)=>task[2]));
61
+ }
62
+ }
63
+
64
+ //# sourceMappingURL=multi-file-writer.js.map
e-commerce/node_modules/next/dist/esm/lib/multi-file-writer.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/multi-file-writer.ts"],"sourcesContent":["import path from '../shared/lib/isomorphic/path'\nimport type { CacheFs } from '../shared/lib/utils'\n\n/**\n * A task to be written.\n */\ntype Task = [\n /**\n * The directory to create.\n */\n directory: string,\n\n /**\n * The promise to create the directory.\n */\n mkdir: Promise<unknown>,\n\n /**\n * The promises to write the files that are dependent on the directory being\n * created.\n */\n writeFile: Promise<unknown>[],\n]\n/**\n * MultiFileWriter is a utility for writing multiple files in parallel that\n * guarantees that all files will be written after their containing directory\n * is created, and that the directory will only be created once.\n */\nexport class MultiFileWriter {\n /**\n * The tasks to be written.\n */\n private readonly tasks: Task[] = []\n\n constructor(\n /**\n * The file system methods to use.\n */\n private readonly fs: Pick<CacheFs, 'mkdir' | 'writeFile'>\n ) {}\n\n /**\n * Finds or creates a task for a directory.\n *\n * @param directory - The directory to find or create a task for.\n * @returns The task for the directory.\n */\n private findOrCreateTask(directory: string): Task {\n // See if this directory already has a task to create it.\n for (const task of this.tasks) {\n if (task[0] === directory) {\n return task\n }\n }\n\n const promise = this.fs.mkdir(directory)\n\n // Attach a catch handler so that it doesn't throw an unhandled promise\n // rejection warning.\n promise.catch(() => {})\n\n // Otherwise, create a new task for this directory.\n const task: Task = [directory, promise, []]\n this.tasks.push(task)\n\n return task\n }\n\n /**\n * Appends a file to the writer to be written after its containing directory\n * is created. The file writer should be awaited after all the files have been\n * appended. Any async operation that occurs between appending and awaiting\n * may cause an unhandled promise rejection warning and potentially crash the\n * process.\n *\n * @param filePath - The path to the file to write.\n * @param data - The data to write to the file.\n */\n public append(filePath: string, data: Buffer | string): void {\n // Find or create a task for the directory that contains the file.\n const task = this.findOrCreateTask(path.dirname(filePath))\n\n const promise = task[1].then(() => this.fs.writeFile(filePath, data))\n\n // Attach a catch handler so that it doesn't throw an unhandled promise\n // rejection warning.\n promise.catch(() => {})\n\n // Add the file write to the task AFTER the directory promise has resolved.\n task[2].push(promise)\n }\n\n /**\n * Returns a promise that resolves when all the files have been written.\n */\n public wait(): Promise<unknown> {\n return Promise.all(this.tasks.flatMap((task) => task[2]))\n }\n}\n"],"names":["path","MultiFileWriter","constructor","fs","tasks","findOrCreateTask","directory","task","promise","mkdir","catch","push","append","filePath","data","dirname","then","writeFile","wait","Promise","all","flatMap"],"mappings":"AAAA,OAAOA,UAAU,gCAA+B;AAuBhD;;;;CAIC,GACD,OAAO,MAAMC;IAMXC,YACE;;KAEC,GACD,AAAiBC,EAAwC,CACzD;aADiBA,KAAAA;aANFC,QAAgB,EAAE;IAOhC;IAEH;;;;;GAKC,GACD,AAAQC,iBAAiBC,SAAiB,EAAQ;QAChD,yDAAyD;QACzD,KAAK,MAAMC,QAAQ,IAAI,CAACH,KAAK,CAAE;YAC7B,IAAIG,IAAI,CAAC,EAAE,KAAKD,WAAW;gBACzB,OAAOC;YACT;QACF;QAEA,MAAMC,UAAU,IAAI,CAACL,EAAE,CAACM,KAAK,CAACH;QAE9B,uEAAuE;QACvE,qBAAqB;QACrBE,QAAQE,KAAK,CAAC,KAAO;QAErB,mDAAmD;QACnD,MAAMH,OAAa;YAACD;YAAWE;YAAS,EAAE;SAAC;QAC3C,IAAI,CAACJ,KAAK,CAACO,IAAI,CAACJ;QAEhB,OAAOA;IACT;IAEA;;;;;;;;;GASC,GACD,AAAOK,OAAOC,QAAgB,EAAEC,IAAqB,EAAQ;QAC3D,kEAAkE;QAClE,MAAMP,OAAO,IAAI,CAACF,gBAAgB,CAACL,KAAKe,OAAO,CAACF;QAEhD,MAAML,UAAUD,IAAI,CAAC,EAAE,CAACS,IAAI,CAAC,IAAM,IAAI,CAACb,EAAE,CAACc,SAAS,CAACJ,UAAUC;QAE/D,uEAAuE;QACvE,qBAAqB;QACrBN,QAAQE,KAAK,CAAC,KAAO;QAErB,2EAA2E;QAC3EH,IAAI,CAAC,EAAE,CAACI,IAAI,CAACH;IACf;IAEA;;GAEC,GACD,AAAOU,OAAyB;QAC9B,OAAOC,QAAQC,GAAG,CAAC,IAAI,CAAChB,KAAK,CAACiB,OAAO,CAAC,CAACd,OAASA,IAAI,CAAC,EAAE;IACzD;AACF","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/needs-experimental-react.js ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ // Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_config.rs
2
+ export function needsExperimentalReact(config) {
3
+ const { blockingSSR, taint, transitionIndicator, gestureTransition } = config.experimental || {};
4
+ return Boolean(blockingSSR || taint || transitionIndicator || gestureTransition);
5
+ }
6
+
7
+ //# sourceMappingURL=needs-experimental-react.js.map
e-commerce/node_modules/next/dist/esm/lib/needs-experimental-react.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/needs-experimental-react.ts"],"sourcesContent":["import type { NextConfig } from '../server/config-shared'\n\n// Keep in sync with Turbopack's experimental React switch: file://./../../../../crates/next-core/src/next_config.rs\nexport function needsExperimentalReact(config: NextConfig) {\n const { blockingSSR, taint, transitionIndicator, gestureTransition } =\n config.experimental || {}\n return Boolean(\n blockingSSR || taint || transitionIndicator || gestureTransition\n )\n}\n"],"names":["needsExperimentalReact","config","blockingSSR","taint","transitionIndicator","gestureTransition","experimental","Boolean"],"mappings":"AAEA,oHAAoH;AACpH,OAAO,SAASA,uBAAuBC,MAAkB;IACvD,MAAM,EAAEC,WAAW,EAAEC,KAAK,EAAEC,mBAAmB,EAAEC,iBAAiB,EAAE,GAClEJ,OAAOK,YAAY,IAAI,CAAC;IAC1B,OAAOC,QACLL,eAAeC,SAASC,uBAAuBC;AAEnD","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/non-nullable.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ export function nonNullable(value) {
2
+ return value !== null && value !== undefined;
3
+ }
4
+
5
+ //# sourceMappingURL=non-nullable.js.map
e-commerce/node_modules/next/dist/esm/lib/non-nullable.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/non-nullable.ts"],"sourcesContent":["export function nonNullable<T>(value: T): value is NonNullable<T> {\n return value !== null && value !== undefined\n}\n"],"names":["nonNullable","value","undefined"],"mappings":"AAAA,OAAO,SAASA,YAAeC,KAAQ;IACrC,OAAOA,UAAU,QAAQA,UAAUC;AACrC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/normalize-path.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ import path from 'path';
2
+ export function normalizePath(file) {
3
+ return path.sep === '\\' ? file.replace(/\\/g, '/') : file;
4
+ }
5
+
6
+ //# sourceMappingURL=normalize-path.js.map
e-commerce/node_modules/next/dist/esm/lib/normalize-path.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/normalize-path.ts"],"sourcesContent":["import path from 'path'\n\nexport function normalizePath(file: string) {\n return path.sep === '\\\\' ? file.replace(/\\\\/g, '/') : file\n}\n"],"names":["path","normalizePath","file","sep","replace"],"mappings":"AAAA,OAAOA,UAAU,OAAM;AAEvB,OAAO,SAASC,cAAcC,IAAY;IACxC,OAAOF,KAAKG,GAAG,KAAK,OAAOD,KAAKE,OAAO,CAAC,OAAO,OAAOF;AACxD","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/oxford-comma-list.js ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ export function getOxfordCommaList(items) {
2
+ return items.map((v, index, { length })=>(index > 0 ? index === length - 1 ? length > 2 ? ', and ' : ' and ' : ', ' : '') + v).join('');
3
+ }
4
+
5
+ //# sourceMappingURL=oxford-comma-list.js.map
e-commerce/node_modules/next/dist/esm/lib/oxford-comma-list.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/oxford-comma-list.ts"],"sourcesContent":["export function getOxfordCommaList(items: string[]): string {\n return items\n .map(\n (v, index, { length }) =>\n (index > 0\n ? index === length - 1\n ? length > 2\n ? ', and '\n : ' and '\n : ', '\n : '') + v\n )\n .join('')\n}\n"],"names":["getOxfordCommaList","items","map","v","index","length","join"],"mappings":"AAAA,OAAO,SAASA,mBAAmBC,KAAe;IAChD,OAAOA,MACJC,GAAG,CACF,CAACC,GAAGC,OAAO,EAAEC,MAAM,EAAE,GACnB,AAACD,CAAAA,QAAQ,IACLA,UAAUC,SAAS,IACjBA,SAAS,IACP,WACA,UACF,OACF,EAAC,IAAKF,GAEbG,IAAI,CAAC;AACV","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/page-types.js ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ export var PAGE_TYPES = /*#__PURE__*/ function(PAGE_TYPES) {
2
+ PAGE_TYPES["PAGES"] = "pages";
3
+ PAGE_TYPES["ROOT"] = "root";
4
+ PAGE_TYPES["APP"] = "app";
5
+ return PAGE_TYPES;
6
+ }({});
7
+
8
+ //# sourceMappingURL=page-types.js.map
e-commerce/node_modules/next/dist/esm/lib/page-types.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/page-types.ts"],"sourcesContent":["export const enum PAGE_TYPES {\n PAGES = 'pages',\n ROOT = 'root',\n APP = 'app',\n}\n"],"names":["PAGE_TYPES"],"mappings":"AAAA,OAAO,IAAA,AAAWA,oCAAAA;;;;WAAAA;MAIjB","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/patch-incorrect-lockfile.js ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ import * as Log from '../build/output/log';
3
+ import findUp from 'next/dist/compiled/find-up';
4
+ // @ts-ignore no-json types
5
+ import { optionalDependencies as nextOptionalDeps } from 'next/package.json';
6
+ import { isCI } from '../server/ci-info';
7
+ import { getRegistry } from './helpers/get-registry';
8
+ let registry;
9
+ async function fetchPkgInfo(pkg) {
10
+ if (!registry) registry = getRegistry();
11
+ const res = await fetch(`${registry}${pkg}`);
12
+ if (!res.ok) {
13
+ throw new Error(`Failed to fetch registry info for ${pkg}, got status ${res.status}`);
14
+ }
15
+ const data = await res.json();
16
+ const versionData = data.versions["16.4.0"];
17
+ return {
18
+ os: versionData.os,
19
+ cpu: versionData.cpu,
20
+ engines: versionData.engines,
21
+ tarball: versionData.dist.tarball,
22
+ integrity: versionData.dist.integrity
23
+ };
24
+ }
25
+ /**
26
+ * Attempts to patch npm package-lock.json when it
27
+ * fails to include optionalDependencies for other platforms
28
+ * this can occur when the package-lock is rebuilt from a current
29
+ * node_modules install instead of pulling fresh package data
30
+ */ export async function patchIncorrectLockfile(dir) {
31
+ if (process.env.NEXT_IGNORE_INCORRECT_LOCKFILE) {
32
+ return;
33
+ }
34
+ const lockfilePath = await findUp('package-lock.json', {
35
+ cwd: dir
36
+ });
37
+ if (!lockfilePath) {
38
+ // if no lockfile present there is no action to take
39
+ return;
40
+ }
41
+ const content = readFileSync(lockfilePath, 'utf8');
42
+ // maintain current line ending
43
+ const endingNewline = content.endsWith('\r\n') ? '\r\n' : content.endsWith('\n') ? '\n' : '';
44
+ const lockfileParsed = JSON.parse(content);
45
+ const lockfileVersion = parseInt(lockfileParsed == null ? void 0 : lockfileParsed.lockfileVersion, 10);
46
+ const expectedSwcPkgs = Object.keys(nextOptionalDeps || {}).filter((pkg)=>pkg.startsWith('@next/swc-'));
47
+ const patchDependency = (pkg, pkgData)=>{
48
+ lockfileParsed.dependencies[pkg] = {
49
+ version: "16.4.0",
50
+ resolved: pkgData.tarball,
51
+ integrity: pkgData.integrity,
52
+ optional: true
53
+ };
54
+ };
55
+ const patchPackage = (pkg, pkgData)=>{
56
+ lockfileParsed.packages[pkg] = {
57
+ version: "16.4.0",
58
+ resolved: pkgData.tarball,
59
+ integrity: pkgData.integrity,
60
+ cpu: pkgData.cpu,
61
+ optional: true,
62
+ os: pkgData.os,
63
+ engines: pkgData.engines
64
+ };
65
+ };
66
+ try {
67
+ const supportedVersions = [
68
+ 1,
69
+ 2,
70
+ 3
71
+ ];
72
+ if (!supportedVersions.includes(lockfileVersion)) {
73
+ // bail on unsupported version
74
+ return;
75
+ }
76
+ // v1 only uses dependencies
77
+ // v2 uses dependencies and packages
78
+ // v3 only uses packages
79
+ const shouldPatchDependencies = lockfileVersion === 1 || lockfileVersion === 2;
80
+ const shouldPatchPackages = lockfileVersion === 2 || lockfileVersion === 3;
81
+ if (shouldPatchDependencies && !lockfileParsed.dependencies || shouldPatchPackages && !lockfileParsed.packages) {
82
+ // invalid lockfile so bail
83
+ return;
84
+ }
85
+ const missingSwcPkgs = [];
86
+ let pkgPrefix;
87
+ if (shouldPatchPackages) {
88
+ pkgPrefix = '';
89
+ for (const pkg of Object.keys(lockfileParsed.packages)){
90
+ if (pkg.endsWith('node_modules/next')) {
91
+ pkgPrefix = pkg.substring(0, pkg.length - 4);
92
+ }
93
+ }
94
+ if (!pkgPrefix) {
95
+ // unable to locate the next package so bail
96
+ return;
97
+ }
98
+ }
99
+ for (const pkg of expectedSwcPkgs){
100
+ if (shouldPatchDependencies && !lockfileParsed.dependencies[pkg] || shouldPatchPackages && !lockfileParsed.packages[`${pkgPrefix}${pkg}`]) {
101
+ missingSwcPkgs.push(pkg);
102
+ }
103
+ }
104
+ if (missingSwcPkgs.length === 0) {
105
+ return;
106
+ }
107
+ Log.warn(`Found lockfile missing swc dependencies,`, isCI ? 'run next locally to automatically patch' : 'patching...');
108
+ if (isCI) {
109
+ // no point in updating in CI as the user can't save the patch
110
+ return;
111
+ }
112
+ const pkgsData = await Promise.all(missingSwcPkgs.map((pkg)=>fetchPkgInfo(pkg)));
113
+ for(let i = 0; i < pkgsData.length; i++){
114
+ const pkg = missingSwcPkgs[i];
115
+ const pkgData = pkgsData[i];
116
+ if (shouldPatchDependencies) {
117
+ patchDependency(pkg, pkgData);
118
+ }
119
+ if (shouldPatchPackages) {
120
+ patchPackage(`${pkgPrefix}${pkg}`, pkgData);
121
+ }
122
+ }
123
+ writeFileSync(lockfilePath, JSON.stringify(lockfileParsed, null, 2) + endingNewline);
124
+ Log.warn('Lockfile was successfully patched, please run "npm install" to ensure @next/swc dependencies are downloaded');
125
+ } catch (err) {
126
+ Log.error(`Failed to patch lockfile, please try uninstalling and reinstalling next in this workspace`);
127
+ console.error(err);
128
+ }
129
+ }
130
+
131
+ //# sourceMappingURL=patch-incorrect-lockfile.js.map
e-commerce/node_modules/next/dist/esm/lib/patch-incorrect-lockfile.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/patch-incorrect-lockfile.ts"],"sourcesContent":["import { readFileSync, writeFileSync } from 'fs'\nimport * as Log from '../build/output/log'\nimport findUp from 'next/dist/compiled/find-up'\n// @ts-ignore no-json types\nimport { optionalDependencies as nextOptionalDeps } from 'next/package.json'\nimport type { UnwrapPromise } from './coalesced-function'\nimport { isCI } from '../server/ci-info'\nimport { getRegistry } from './helpers/get-registry'\n\nlet registry: string | undefined\n\nasync function fetchPkgInfo(pkg: string) {\n if (!registry) registry = getRegistry()\n const res = await fetch(`${registry}${pkg}`)\n\n if (!res.ok) {\n throw new Error(\n `Failed to fetch registry info for ${pkg}, got status ${res.status}`\n )\n }\n const data = await res.json()\n const versionData = data.versions[process.env.__NEXT_VERSION as string]\n\n return {\n os: versionData.os,\n cpu: versionData.cpu,\n engines: versionData.engines,\n tarball: versionData.dist.tarball,\n integrity: versionData.dist.integrity,\n }\n}\n\n/**\n * Attempts to patch npm package-lock.json when it\n * fails to include optionalDependencies for other platforms\n * this can occur when the package-lock is rebuilt from a current\n * node_modules install instead of pulling fresh package data\n */\nexport async function patchIncorrectLockfile(dir: string) {\n if (process.env.NEXT_IGNORE_INCORRECT_LOCKFILE) {\n return\n }\n const lockfilePath = await findUp('package-lock.json', { cwd: dir })\n\n if (!lockfilePath) {\n // if no lockfile present there is no action to take\n return\n }\n const content = readFileSync(lockfilePath, 'utf8')\n // maintain current line ending\n const endingNewline = content.endsWith('\\r\\n')\n ? '\\r\\n'\n : content.endsWith('\\n')\n ? '\\n'\n : ''\n\n const lockfileParsed = JSON.parse(content)\n const lockfileVersion = parseInt(lockfileParsed?.lockfileVersion, 10)\n const expectedSwcPkgs = Object.keys(nextOptionalDeps || {}).filter((pkg) =>\n pkg.startsWith('@next/swc-')\n )\n\n const patchDependency = (\n pkg: string,\n pkgData: UnwrapPromise<ReturnType<typeof fetchPkgInfo>>\n ) => {\n lockfileParsed.dependencies[pkg] = {\n version: process.env.__NEXT_VERSION as string,\n resolved: pkgData.tarball,\n integrity: pkgData.integrity,\n optional: true,\n }\n }\n\n const patchPackage = (\n pkg: string,\n pkgData: UnwrapPromise<ReturnType<typeof fetchPkgInfo>>\n ) => {\n lockfileParsed.packages[pkg] = {\n version: process.env.__NEXT_VERSION as string,\n resolved: pkgData.tarball,\n integrity: pkgData.integrity,\n cpu: pkgData.cpu,\n optional: true,\n os: pkgData.os,\n engines: pkgData.engines,\n }\n }\n\n try {\n const supportedVersions = [1, 2, 3]\n\n if (!supportedVersions.includes(lockfileVersion)) {\n // bail on unsupported version\n return\n }\n // v1 only uses dependencies\n // v2 uses dependencies and packages\n // v3 only uses packages\n const shouldPatchDependencies =\n lockfileVersion === 1 || lockfileVersion === 2\n const shouldPatchPackages = lockfileVersion === 2 || lockfileVersion === 3\n\n if (\n (shouldPatchDependencies && !lockfileParsed.dependencies) ||\n (shouldPatchPackages && !lockfileParsed.packages)\n ) {\n // invalid lockfile so bail\n return\n }\n const missingSwcPkgs = []\n let pkgPrefix: string | undefined\n\n if (shouldPatchPackages) {\n pkgPrefix = ''\n for (const pkg of Object.keys(lockfileParsed.packages)) {\n if (pkg.endsWith('node_modules/next')) {\n pkgPrefix = pkg.substring(0, pkg.length - 4)\n }\n }\n\n if (!pkgPrefix) {\n // unable to locate the next package so bail\n return\n }\n }\n\n for (const pkg of expectedSwcPkgs) {\n if (\n (shouldPatchDependencies && !lockfileParsed.dependencies[pkg]) ||\n (shouldPatchPackages && !lockfileParsed.packages[`${pkgPrefix}${pkg}`])\n ) {\n missingSwcPkgs.push(pkg)\n }\n }\n if (missingSwcPkgs.length === 0) {\n return\n }\n Log.warn(\n `Found lockfile missing swc dependencies,`,\n isCI ? 'run next locally to automatically patch' : 'patching...'\n )\n\n if (isCI) {\n // no point in updating in CI as the user can't save the patch\n return\n }\n const pkgsData = await Promise.all(\n missingSwcPkgs.map((pkg) => fetchPkgInfo(pkg))\n )\n\n for (let i = 0; i < pkgsData.length; i++) {\n const pkg = missingSwcPkgs[i]\n const pkgData = pkgsData[i]\n\n if (shouldPatchDependencies) {\n patchDependency(pkg, pkgData)\n }\n if (shouldPatchPackages) {\n patchPackage(`${pkgPrefix}${pkg}`, pkgData)\n }\n }\n\n writeFileSync(\n lockfilePath,\n JSON.stringify(lockfileParsed, null, 2) + endingNewline\n )\n Log.warn(\n 'Lockfile was successfully patched, please run \"npm install\" to ensure @next/swc dependencies are downloaded'\n )\n } catch (err) {\n Log.error(\n `Failed to patch lockfile, please try uninstalling and reinstalling next in this workspace`\n )\n console.error(err)\n }\n}\n"],"names":["readFileSync","writeFileSync","Log","findUp","optionalDependencies","nextOptionalDeps","isCI","getRegistry","registry","fetchPkgInfo","pkg","res","fetch","ok","Error","status","data","json","versionData","versions","process","env","__NEXT_VERSION","os","cpu","engines","tarball","dist","integrity","patchIncorrectLockfile","dir","NEXT_IGNORE_INCORRECT_LOCKFILE","lockfilePath","cwd","content","endingNewline","endsWith","lockfileParsed","JSON","parse","lockfileVersion","parseInt","expectedSwcPkgs","Object","keys","filter","startsWith","patchDependency","pkgData","dependencies","version","resolved","optional","patchPackage","packages","supportedVersions","includes","shouldPatchDependencies","shouldPatchPackages","missingSwcPkgs","pkgPrefix","substring","length","push","warn","pkgsData","Promise","all","map","i","stringify","err","error","console"],"mappings":"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","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/pick.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ export function pick(obj, keys) {
2
+ const newObj = {};
3
+ for (const key of keys){
4
+ newObj[key] = obj[key];
5
+ }
6
+ return newObj;
7
+ }
8
+
9
+ //# sourceMappingURL=pick.js.map
e-commerce/node_modules/next/dist/esm/lib/pick.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/pick.ts"],"sourcesContent":["export function pick<T, K extends keyof T>(obj: T, keys: K[]): Pick<T, K> {\n const newObj = {} as Pick<T, K>\n for (const key of keys) {\n newObj[key] = obj[key]\n }\n return newObj\n}\n"],"names":["pick","obj","keys","newObj","key"],"mappings":"AAAA,OAAO,SAASA,KAA2BC,GAAM,EAAEC,IAAS;IAC1D,MAAMC,SAAS,CAAC;IAChB,KAAK,MAAMC,OAAOF,KAAM;QACtBC,MAAM,CAACC,IAAI,GAAGH,GAAG,CAACG,IAAI;IACxB;IACA,OAAOD;AACT","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/picocolors.js ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // ISC License
2
+ // Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov
3
+ // Permission to use, copy, modify, and/or distribute this software for any
4
+ // purpose with or without fee is hereby granted, provided that the above
5
+ // copyright notice and this permission notice appear in all copies.
6
+ // THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
7
+ // WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
8
+ // MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
9
+ // ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
10
+ // WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
11
+ // ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
12
+ // OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
13
+ //
14
+ // https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1
15
+ var _globalThis;
16
+ const { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {};
17
+ const enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== 'dumb');
18
+ export const isColorSupported = Boolean(enabled);
19
+ // Whether stdout ends up on a terminal: directly, or through the CLI, which
20
+ // pipes a child's output while the upgrade menu is open.
21
+ export const stdoutIsTerminal = Boolean(stdout == null ? void 0 : stdout.isTTY) || env.NEXT_PRIVATE_PROMPT_OUTPUT === '1';
22
+ const replaceClose = (str, close, replace, index)=>{
23
+ const start = str.substring(0, index) + replace;
24
+ const end = str.substring(index + close.length);
25
+ const nextIndex = end.indexOf(close);
26
+ return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end;
27
+ };
28
+ const formatter = (open, close, replace = open)=>{
29
+ if (!enabled) return String;
30
+ return (input)=>{
31
+ const string = '' + input;
32
+ const index = string.indexOf(close, open.length);
33
+ return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close;
34
+ };
35
+ };
36
+ export const reset = enabled ? (s)=>`\x1b[0m${s}\x1b[0m` : String;
37
+ export const bold = formatter('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m');
38
+ export const dim = formatter('\x1b[2m', '\x1b[22m', '\x1b[22m\x1b[2m');
39
+ export const italic = formatter('\x1b[3m', '\x1b[23m');
40
+ export const underline = formatter('\x1b[4m', '\x1b[24m');
41
+ export const inverse = formatter('\x1b[7m', '\x1b[27m');
42
+ export const hidden = formatter('\x1b[8m', '\x1b[28m');
43
+ export const strikethrough = formatter('\x1b[9m', '\x1b[29m');
44
+ export const black = formatter('\x1b[30m', '\x1b[39m');
45
+ export const red = formatter('\x1b[31m', '\x1b[39m');
46
+ export const green = formatter('\x1b[32m', '\x1b[39m');
47
+ export const yellow = formatter('\x1b[33m', '\x1b[39m');
48
+ export const blue = formatter('\x1b[34m', '\x1b[39m');
49
+ export const magenta = formatter('\x1b[35m', '\x1b[39m');
50
+ export const purple = formatter('\x1b[38;2;173;127;168m', '\x1b[39m');
51
+ export const cyan = formatter('\x1b[36m', '\x1b[39m');
52
+ export const white = formatter('\x1b[37m', '\x1b[39m');
53
+ export const gray = formatter('\x1b[90m', '\x1b[39m');
54
+ export const bgBlack = formatter('\x1b[40m', '\x1b[49m');
55
+ export const bgRed = formatter('\x1b[41m', '\x1b[49m');
56
+ export const bgGreen = formatter('\x1b[42m', '\x1b[49m');
57
+ export const bgYellow = formatter('\x1b[43m', '\x1b[49m');
58
+ export const bgBlue = formatter('\x1b[44m', '\x1b[49m');
59
+ export const bgMagenta = formatter('\x1b[45m', '\x1b[49m');
60
+ export const bgCyan = formatter('\x1b[46m', '\x1b[49m');
61
+ export const bgWhite = formatter('\x1b[47m', '\x1b[49m');
62
+
63
+ //# sourceMappingURL=picocolors.js.map
e-commerce/node_modules/next/dist/esm/lib/picocolors.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/picocolors.ts"],"sourcesContent":["// ISC License\n\n// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov\n\n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n//\n// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1\n\nconst { env, stdout } = globalThis?.process ?? {}\n\nconst enabled =\n env &&\n !env.NO_COLOR &&\n (env.FORCE_COLOR || (stdout?.isTTY && !env.CI && env.TERM !== 'dumb'))\n\nexport const isColorSupported = Boolean(enabled)\n\n// Whether stdout ends up on a terminal: directly, or through the CLI, which\n// pipes a child's output while the upgrade menu is open.\nexport const stdoutIsTerminal =\n Boolean(stdout?.isTTY) || env.NEXT_PRIVATE_PROMPT_OUTPUT === '1'\n\nconst replaceClose = (\n str: string,\n close: string,\n replace: string,\n index: number\n): string => {\n const start = str.substring(0, index) + replace\n const end = str.substring(index + close.length)\n const nextIndex = end.indexOf(close)\n return ~nextIndex\n ? start + replaceClose(end, close, replace, nextIndex)\n : start + end\n}\n\nconst formatter = (open: string, close: string, replace = open) => {\n if (!enabled) return String\n return (input: string) => {\n const string = '' + input\n const index = string.indexOf(close, open.length)\n return ~index\n ? open + replaceClose(string, close, replace, index) + close\n : open + string + close\n }\n}\n\nexport const reset = enabled ? (s: string) => `\\x1b[0m${s}\\x1b[0m` : String\nexport const bold = formatter('\\x1b[1m', '\\x1b[22m', '\\x1b[22m\\x1b[1m')\nexport const dim = formatter('\\x1b[2m', '\\x1b[22m', '\\x1b[22m\\x1b[2m')\nexport const italic = formatter('\\x1b[3m', '\\x1b[23m')\nexport const underline = formatter('\\x1b[4m', '\\x1b[24m')\nexport const inverse = formatter('\\x1b[7m', '\\x1b[27m')\nexport const hidden = formatter('\\x1b[8m', '\\x1b[28m')\nexport const strikethrough = formatter('\\x1b[9m', '\\x1b[29m')\nexport const black = formatter('\\x1b[30m', '\\x1b[39m')\nexport const red = formatter('\\x1b[31m', '\\x1b[39m')\nexport const green = formatter('\\x1b[32m', '\\x1b[39m')\nexport const yellow = formatter('\\x1b[33m', '\\x1b[39m')\nexport const blue = formatter('\\x1b[34m', '\\x1b[39m')\nexport const magenta = formatter('\\x1b[35m', '\\x1b[39m')\nexport const purple = formatter('\\x1b[38;2;173;127;168m', '\\x1b[39m')\nexport const cyan = formatter('\\x1b[36m', '\\x1b[39m')\nexport const white = formatter('\\x1b[37m', '\\x1b[39m')\nexport const gray = formatter('\\x1b[90m', '\\x1b[39m')\nexport const bgBlack = formatter('\\x1b[40m', '\\x1b[49m')\nexport const bgRed = formatter('\\x1b[41m', '\\x1b[49m')\nexport const bgGreen = formatter('\\x1b[42m', '\\x1b[49m')\nexport const bgYellow = formatter('\\x1b[43m', '\\x1b[49m')\nexport const bgBlue = formatter('\\x1b[44m', '\\x1b[49m')\nexport const bgMagenta = formatter('\\x1b[45m', '\\x1b[49m')\nexport const bgCyan = formatter('\\x1b[46m', '\\x1b[49m')\nexport const bgWhite = formatter('\\x1b[47m', '\\x1b[49m')\n"],"names":["globalThis","env","stdout","process","enabled","NO_COLOR","FORCE_COLOR","isTTY","CI","TERM","isColorSupported","Boolean","stdoutIsTerminal","NEXT_PRIVATE_PROMPT_OUTPUT","replaceClose","str","close","replace","index","start","substring","end","length","nextIndex","indexOf","formatter","open","String","input","string","reset","s","bold","dim","italic","underline","inverse","hidden","strikethrough","black","red","green","yellow","blue","magenta","purple","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite"],"mappings":"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","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/pretty-bytes.js ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*
2
+ MIT License
3
+
4
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
5
+
6
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+
8
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
11
+ */ const UNITS = [
12
+ 'B',
13
+ 'kB',
14
+ 'MB',
15
+ 'GB',
16
+ 'TB',
17
+ 'PB',
18
+ 'EB',
19
+ 'ZB',
20
+ 'YB'
21
+ ];
22
+ /*
23
+ Formats the given number using `Number#toLocaleString`.
24
+ - If locale is a string, the value is expected to be a locale-key (for example: `de`).
25
+ - If locale is true, the system default locale is used for translation.
26
+ - If no value for locale is specified, the number is returned unmodified.
27
+ */ const toLocaleString = (number, locale)=>{
28
+ let result = number;
29
+ if (typeof locale === 'string') {
30
+ result = number.toLocaleString(locale);
31
+ } else if (locale === true) {
32
+ result = number.toLocaleString();
33
+ }
34
+ return result;
35
+ };
36
+ export default function prettyBytes(number, options) {
37
+ if (!Number.isFinite(number)) {
38
+ throw new TypeError(`Expected a finite number, got ${typeof number}: ${number}`);
39
+ }
40
+ options = Object.assign({}, options);
41
+ if (options.signed && number === 0) {
42
+ return ' 0 B';
43
+ }
44
+ const isNegative = number < 0;
45
+ const prefix = isNegative ? '-' : options.signed ? '+' : '';
46
+ if (isNegative) {
47
+ number = -number;
48
+ }
49
+ if (number < 1) {
50
+ const numberString = toLocaleString(number, options.locale);
51
+ return prefix + numberString + ' B';
52
+ }
53
+ const exponent = Math.min(Math.floor(Math.log10(number) / 3), UNITS.length - 1);
54
+ number = Number((number / Math.pow(1000, exponent)).toPrecision(3));
55
+ const numberString = toLocaleString(number, options.locale);
56
+ const unit = UNITS[exponent];
57
+ return prefix + numberString + ' ' + unit;
58
+ }
59
+
60
+ //# sourceMappingURL=pretty-bytes.js.map
e-commerce/node_modules/next/dist/esm/lib/pretty-bytes.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/pretty-bytes.ts"],"sourcesContent":["/*\nMIT License\n\nCopyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\nconst UNITS = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB']\n\n/*\nFormats the given number using `Number#toLocaleString`.\n- If locale is a string, the value is expected to be a locale-key (for example: `de`).\n- If locale is true, the system default locale is used for translation.\n- If no value for locale is specified, the number is returned unmodified.\n*/\nconst toLocaleString = (number: number, locale: any) => {\n let result: any = number\n if (typeof locale === 'string') {\n result = number.toLocaleString(locale)\n } else if (locale === true) {\n result = number.toLocaleString()\n }\n\n return result\n}\n\nexport default function prettyBytes(number: number, options?: any): string {\n if (!Number.isFinite(number)) {\n throw new TypeError(\n `Expected a finite number, got ${typeof number}: ${number}`\n )\n }\n\n options = Object.assign({}, options)\n\n if (options.signed && number === 0) {\n return ' 0 B'\n }\n\n const isNegative = number < 0\n const prefix = isNegative ? '-' : options.signed ? '+' : ''\n\n if (isNegative) {\n number = -number\n }\n\n if (number < 1) {\n const numberString = toLocaleString(number, options.locale)\n return prefix + numberString + ' B'\n }\n\n const exponent = Math.min(\n Math.floor(Math.log10(number) / 3),\n UNITS.length - 1\n )\n\n number = Number((number / Math.pow(1000, exponent)).toPrecision(3))\n const numberString = toLocaleString(number, options.locale)\n\n const unit = UNITS[exponent]\n\n return prefix + numberString + ' ' + unit\n}\n"],"names":["UNITS","toLocaleString","number","locale","result","prettyBytes","options","Number","isFinite","TypeError","Object","assign","signed","isNegative","prefix","numberString","exponent","Math","min","floor","log10","length","pow","toPrecision","unit"],"mappings":"AAAA;;;;;;;;;;AAUA,GAEA,MAAMA,QAAQ;IAAC;IAAK;IAAM;IAAM;IAAM;IAAM;IAAM;IAAM;IAAM;CAAK;AAEnE;;;;;AAKA,GACA,MAAMC,iBAAiB,CAACC,QAAgBC;IACtC,IAAIC,SAAcF;IAClB,IAAI,OAAOC,WAAW,UAAU;QAC9BC,SAASF,OAAOD,cAAc,CAACE;IACjC,OAAO,IAAIA,WAAW,MAAM;QAC1BC,SAASF,OAAOD,cAAc;IAChC;IAEA,OAAOG;AACT;AAEA,eAAe,SAASC,YAAYH,MAAc,EAAEI,OAAa;IAC/D,IAAI,CAACC,OAAOC,QAAQ,CAACN,SAAS;QAC5B,MAAM,IAAIO,UACR,CAAC,8BAA8B,EAAE,OAAOP,OAAO,EAAE,EAAEA,QAAQ;IAE/D;IAEAI,UAAUI,OAAOC,MAAM,CAAC,CAAC,GAAGL;IAE5B,IAAIA,QAAQM,MAAM,IAAIV,WAAW,GAAG;QAClC,OAAO;IACT;IAEA,MAAMW,aAAaX,SAAS;IAC5B,MAAMY,SAASD,aAAa,MAAMP,QAAQM,MAAM,GAAG,MAAM;IAEzD,IAAIC,YAAY;QACdX,SAAS,CAACA;IACZ;IAEA,IAAIA,SAAS,GAAG;QACd,MAAMa,eAAed,eAAeC,QAAQI,QAAQH,MAAM;QAC1D,OAAOW,SAASC,eAAe;IACjC;IAEA,MAAMC,WAAWC,KAAKC,GAAG,CACvBD,KAAKE,KAAK,CAACF,KAAKG,KAAK,CAAClB,UAAU,IAChCF,MAAMqB,MAAM,GAAG;IAGjBnB,SAASK,OAAO,AAACL,CAAAA,SAASe,KAAKK,GAAG,CAAC,MAAMN,SAAQ,EAAGO,WAAW,CAAC;IAChE,MAAMR,eAAed,eAAeC,QAAQI,QAAQH,MAAM;IAE1D,MAAMqB,OAAOxB,KAAK,CAACgB,SAAS;IAE5B,OAAOF,SAASC,eAAe,MAAMS;AACvC","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/profiles-dir.js ADDED
@@ -0,0 +1,40 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { existsSync, mkdirSync, writeFileSync } from 'fs';
2
+ import { join } from 'path';
3
+ /**
4
+ * Name of the directory at the project root where profiling output (CPU
5
+ * profiles and Turbopack traces) is written when profiling is enabled (see the
6
+ * `--experimental-cpu-prof` and `--internal-trace` CLI flags). It is a
7
+ * fixed-name sibling of `distDir`, not configurable.
8
+ *
9
+ * Keep this in sync with `DIST_PROFILES_DIR_NAME` in
10
+ * `crates/next-core/src/next_config.rs`.
11
+ */ export const PROFILES_DIR_NAME = '.next-profiles';
12
+ const GITIGNORE_CONTENTS = `# Created automatically by Next.js. Profiling output should not be committed.
13
+ *
14
+ `;
15
+ /**
16
+ * Create the `.next-profiles` directory under `dir` and return its absolute
17
+ * path. This is the single place that creates the directory — the Rust trace
18
+ * writer relies on it already existing.
19
+ *
20
+ * Also writes a `.gitignore` containing `*` (if one isn't already there) so the
21
+ * potentially large profiling output is excluded from git and gitignore-aware
22
+ * tools (Tailwind, Turborepo, ...) skip the subtree instead of reading it and
23
+ * hanging/OOMing.
24
+ */ export function ensureProfilesDir(dir) {
25
+ const profilesDir = join(dir, PROFILES_DIR_NAME);
26
+ mkdirSync(profilesDir, {
27
+ recursive: true
28
+ });
29
+ const gitignorePath = join(profilesDir, '.gitignore');
30
+ if (!existsSync(gitignorePath)) {
31
+ try {
32
+ writeFileSync(gitignorePath, GITIGNORE_CONTENTS);
33
+ } catch {
34
+ // A missing .gitignore must not abort a profiling run.
35
+ }
36
+ }
37
+ return profilesDir;
38
+ }
39
+
40
+ //# sourceMappingURL=profiles-dir.js.map
e-commerce/node_modules/next/dist/esm/lib/profiles-dir.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/profiles-dir.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'fs'\nimport { join } from 'path'\n\n/**\n * Name of the directory at the project root where profiling output (CPU\n * profiles and Turbopack traces) is written when profiling is enabled (see the\n * `--experimental-cpu-prof` and `--internal-trace` CLI flags). It is a\n * fixed-name sibling of `distDir`, not configurable.\n *\n * Keep this in sync with `DIST_PROFILES_DIR_NAME` in\n * `crates/next-core/src/next_config.rs`.\n */\nexport const PROFILES_DIR_NAME = '.next-profiles'\n\nconst GITIGNORE_CONTENTS = `# Created automatically by Next.js. Profiling output should not be committed.\n*\n`\n\n/**\n * Create the `.next-profiles` directory under `dir` and return its absolute\n * path. This is the single place that creates the directory — the Rust trace\n * writer relies on it already existing.\n *\n * Also writes a `.gitignore` containing `*` (if one isn't already there) so the\n * potentially large profiling output is excluded from git and gitignore-aware\n * tools (Tailwind, Turborepo, ...) skip the subtree instead of reading it and\n * hanging/OOMing.\n */\nexport function ensureProfilesDir(dir: string): string {\n const profilesDir = join(dir, PROFILES_DIR_NAME)\n mkdirSync(profilesDir, { recursive: true })\n const gitignorePath = join(profilesDir, '.gitignore')\n if (!existsSync(gitignorePath)) {\n try {\n writeFileSync(gitignorePath, GITIGNORE_CONTENTS)\n } catch {\n // A missing .gitignore must not abort a profiling run.\n }\n }\n return profilesDir\n}\n"],"names":["existsSync","mkdirSync","writeFileSync","join","PROFILES_DIR_NAME","GITIGNORE_CONTENTS","ensureProfilesDir","dir","profilesDir","recursive","gitignorePath"],"mappings":"AAAA,SAASA,UAAU,EAAEC,SAAS,EAAEC,aAAa,QAAQ,KAAI;AACzD,SAASC,IAAI,QAAQ,OAAM;AAE3B;;;;;;;;CAQC,GACD,OAAO,MAAMC,oBAAoB,iBAAgB;AAEjD,MAAMC,qBAAqB,CAAC;;AAE5B,CAAC;AAED;;;;;;;;;CASC,GACD,OAAO,SAASC,kBAAkBC,GAAW;IAC3C,MAAMC,cAAcL,KAAKI,KAAKH;IAC9BH,UAAUO,aAAa;QAAEC,WAAW;IAAK;IACzC,MAAMC,gBAAgBP,KAAKK,aAAa;IACxC,IAAI,CAACR,WAAWU,gBAAgB;QAC9B,IAAI;YACFR,cAAcQ,eAAeL;QAC/B,EAAE,OAAM;QACN,uDAAuD;QACzD;IACF;IACA,OAAOG;AACT","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/realpath.js ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'fs';
2
+ const isWindows = process.platform === 'win32';
3
+ // Interesting learning from this, that fs.realpathSync is 70x slower than fs.realpathSync.native:
4
+ // https://sun0day.github.io/blog/vite/why-vite4_3-is-faster.html#fs-realpathsync-issue
5
+ // https://github.com/nodejs/node/issues/2680
6
+ // However, we can't use fs.realpathSync.native on Windows due to behavior differences.
7
+ export const realpathSync = isWindows ? fs.realpathSync : fs.realpathSync.native;
8
+
9
+ //# sourceMappingURL=realpath.js.map
e-commerce/node_modules/next/dist/esm/lib/realpath.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/realpath.ts"],"sourcesContent":["import fs from 'fs'\n\nconst isWindows = process.platform === 'win32'\n\n// Interesting learning from this, that fs.realpathSync is 70x slower than fs.realpathSync.native:\n// https://sun0day.github.io/blog/vite/why-vite4_3-is-faster.html#fs-realpathsync-issue\n// https://github.com/nodejs/node/issues/2680\n// However, we can't use fs.realpathSync.native on Windows due to behavior differences.\nexport const realpathSync = isWindows ? fs.realpathSync : fs.realpathSync.native\n"],"names":["fs","isWindows","process","platform","realpathSync","native"],"mappings":"AAAA,OAAOA,QAAQ,KAAI;AAEnB,MAAMC,YAAYC,QAAQC,QAAQ,KAAK;AAEvC,kGAAkG;AAClG,uFAAuF;AACvF,6CAA6C;AAC7C,uFAAuF;AACvF,OAAO,MAAMC,eAAeH,YAAYD,GAAGI,YAAY,GAAGJ,GAAGI,YAAY,CAACC,MAAM,CAAA","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/recursive-copy.js ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import path from 'path';
2
+ import { promises, constants } from 'fs';
3
+ import { Sema } from 'next/dist/compiled/async-sema';
4
+ import isError from './is-error';
5
+ const COPYFILE_EXCL = constants.COPYFILE_EXCL;
6
+ export async function recursiveCopy(source, dest, { concurrency = 32, overwrite = false, filter = ()=>true } = {}) {
7
+ const cwdPath = process.cwd();
8
+ const from = path.resolve(cwdPath, source);
9
+ const to = path.resolve(cwdPath, dest);
10
+ const sema = new Sema(concurrency);
11
+ // deep copy the file/directory
12
+ async function _copy(item, lstats) {
13
+ const target = item.replace(from, to);
14
+ await sema.acquire();
15
+ if (!lstats) {
16
+ // after lock on first run
17
+ lstats = await promises.lstat(from);
18
+ }
19
+ // readdir & lstat do not follow symbolic links
20
+ // if part is a symbolic link, follow it with stat
21
+ let isFile = lstats.isFile();
22
+ let isDirectory = lstats.isDirectory();
23
+ if (lstats.isSymbolicLink()) {
24
+ const stats = await promises.stat(item);
25
+ isFile = stats.isFile();
26
+ isDirectory = stats.isDirectory();
27
+ }
28
+ if (isDirectory) {
29
+ try {
30
+ await promises.mkdir(target, {
31
+ recursive: true
32
+ });
33
+ } catch (err) {
34
+ // do not throw `folder already exists` errors
35
+ if (isError(err) && err.code !== 'EEXIST') {
36
+ throw err;
37
+ }
38
+ }
39
+ sema.release();
40
+ const files = await promises.readdir(item, {
41
+ withFileTypes: true
42
+ });
43
+ await Promise.all(files.map((file)=>_copy(path.join(item, file.name), file)));
44
+ } else if (isFile && // before we send the path to filter
45
+ // we remove the base path (from) and replace \ by / (windows)
46
+ filter(item.replace(from, '').replace(/\\/g, '/'))) {
47
+ await promises.copyFile(item, target, overwrite ? undefined : COPYFILE_EXCL).catch((err)=>{
48
+ // if overwrite is false we shouldn't fail on EEXIST
49
+ if (err.code !== 'EEXIST') {
50
+ throw err;
51
+ }
52
+ });
53
+ sema.release();
54
+ } else {
55
+ sema.release();
56
+ }
57
+ }
58
+ await _copy(from);
59
+ }
60
+
61
+ //# sourceMappingURL=recursive-copy.js.map
e-commerce/node_modules/next/dist/esm/lib/recursive-copy.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/recursive-copy.ts"],"sourcesContent":["import path from 'path'\nimport type { Dirent, Stats } from 'fs'\nimport { promises, constants } from 'fs'\nimport { Sema } from 'next/dist/compiled/async-sema'\nimport isError from './is-error'\n\nconst COPYFILE_EXCL = constants.COPYFILE_EXCL\n\nexport async function recursiveCopy(\n source: string,\n dest: string,\n {\n concurrency = 32,\n overwrite = false,\n filter = () => true,\n }: {\n concurrency?: number\n overwrite?: boolean\n filter?(filePath: string): boolean\n } = {}\n): Promise<void> {\n const cwdPath = process.cwd()\n const from = path.resolve(cwdPath, source)\n const to = path.resolve(cwdPath, dest)\n\n const sema = new Sema(concurrency)\n\n // deep copy the file/directory\n async function _copy(item: string, lstats?: Stats | Dirent): Promise<void> {\n const target = item.replace(from, to)\n\n await sema.acquire()\n\n if (!lstats) {\n // after lock on first run\n lstats = await promises.lstat(from)\n }\n\n // readdir & lstat do not follow symbolic links\n // if part is a symbolic link, follow it with stat\n let isFile = lstats.isFile()\n let isDirectory = lstats.isDirectory()\n if (lstats.isSymbolicLink()) {\n const stats = await promises.stat(item)\n isFile = stats.isFile()\n isDirectory = stats.isDirectory()\n }\n\n if (isDirectory) {\n try {\n await promises.mkdir(target, { recursive: true })\n } catch (err) {\n // do not throw `folder already exists` errors\n if (isError(err) && err.code !== 'EEXIST') {\n throw err\n }\n }\n sema.release()\n const files = await promises.readdir(item, { withFileTypes: true })\n await Promise.all(\n files.map((file) => _copy(path.join(item, file.name), file))\n )\n } else if (\n isFile &&\n // before we send the path to filter\n // we remove the base path (from) and replace \\ by / (windows)\n filter(item.replace(from, '').replace(/\\\\/g, '/'))\n ) {\n await promises\n .copyFile(item, target, overwrite ? undefined : COPYFILE_EXCL)\n .catch((err) => {\n // if overwrite is false we shouldn't fail on EEXIST\n if (err.code !== 'EEXIST') {\n throw err\n }\n })\n sema.release()\n } else {\n sema.release()\n }\n }\n\n await _copy(from)\n}\n"],"names":["path","promises","constants","Sema","isError","COPYFILE_EXCL","recursiveCopy","source","dest","concurrency","overwrite","filter","cwdPath","process","cwd","from","resolve","to","sema","_copy","item","lstats","target","replace","acquire","lstat","isFile","isDirectory","isSymbolicLink","stats","stat","mkdir","recursive","err","code","release","files","readdir","withFileTypes","Promise","all","map","file","join","name","copyFile","undefined","catch"],"mappings":"AAAA,OAAOA,UAAU,OAAM;AAEvB,SAASC,QAAQ,EAAEC,SAAS,QAAQ,KAAI;AACxC,SAASC,IAAI,QAAQ,gCAA+B;AACpD,OAAOC,aAAa,aAAY;AAEhC,MAAMC,gBAAgBH,UAAUG,aAAa;AAE7C,OAAO,eAAeC,cACpBC,MAAc,EACdC,IAAY,EACZ,EACEC,cAAc,EAAE,EAChBC,YAAY,KAAK,EACjBC,SAAS,IAAM,IAAI,EAKpB,GAAG,CAAC,CAAC;IAEN,MAAMC,UAAUC,QAAQC,GAAG;IAC3B,MAAMC,OAAOf,KAAKgB,OAAO,CAACJ,SAASL;IACnC,MAAMU,KAAKjB,KAAKgB,OAAO,CAACJ,SAASJ;IAEjC,MAAMU,OAAO,IAAIf,KAAKM;IAEtB,+BAA+B;IAC/B,eAAeU,MAAMC,IAAY,EAAEC,MAAuB;QACxD,MAAMC,SAASF,KAAKG,OAAO,CAACR,MAAME;QAElC,MAAMC,KAAKM,OAAO;QAElB,IAAI,CAACH,QAAQ;YACX,0BAA0B;YAC1BA,SAAS,MAAMpB,SAASwB,KAAK,CAACV;QAChC;QAEA,+CAA+C;QAC/C,kDAAkD;QAClD,IAAIW,SAASL,OAAOK,MAAM;QAC1B,IAAIC,cAAcN,OAAOM,WAAW;QACpC,IAAIN,OAAOO,cAAc,IAAI;YAC3B,MAAMC,QAAQ,MAAM5B,SAAS6B,IAAI,CAACV;YAClCM,SAASG,MAAMH,MAAM;YACrBC,cAAcE,MAAMF,WAAW;QACjC;QAEA,IAAIA,aAAa;YACf,IAAI;gBACF,MAAM1B,SAAS8B,KAAK,CAACT,QAAQ;oBAAEU,WAAW;gBAAK;YACjD,EAAE,OAAOC,KAAK;gBACZ,8CAA8C;gBAC9C,IAAI7B,QAAQ6B,QAAQA,IAAIC,IAAI,KAAK,UAAU;oBACzC,MAAMD;gBACR;YACF;YACAf,KAAKiB,OAAO;YACZ,MAAMC,QAAQ,MAAMnC,SAASoC,OAAO,CAACjB,MAAM;gBAAEkB,eAAe;YAAK;YACjE,MAAMC,QAAQC,GAAG,CACfJ,MAAMK,GAAG,CAAC,CAACC,OAASvB,MAAMnB,KAAK2C,IAAI,CAACvB,MAAMsB,KAAKE,IAAI,GAAGF;QAE1D,OAAO,IACLhB,UACA,oCAAoC;QACpC,8DAA8D;QAC9Df,OAAOS,KAAKG,OAAO,CAACR,MAAM,IAAIQ,OAAO,CAAC,OAAO,OAC7C;YACA,MAAMtB,SACH4C,QAAQ,CAACzB,MAAME,QAAQZ,YAAYoC,YAAYzC,eAC/C0C,KAAK,CAAC,CAACd;gBACN,oDAAoD;gBACpD,IAAIA,IAAIC,IAAI,KAAK,UAAU;oBACzB,MAAMD;gBACR;YACF;YACFf,KAAKiB,OAAO;QACd,OAAO;YACLjB,KAAKiB,OAAO;QACd;IACF;IAEA,MAAMhB,MAAMJ;AACd","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/recursive-delete.js ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import * as fs from 'node:fs';
2
+ import { join } from 'node:path';
3
+ import isError from './is-error';
4
+ import { wait } from './wait';
5
+ // We use an exponential backoff. See the unit test for example values.
6
+ //
7
+ // - Node's `fs` module uses a linear backoff, starting with 100ms.
8
+ // - Rust tries 64 times with only a `thread::yield_now` in between.
9
+ //
10
+ // We want something more aggressive, as `recursiveDelete` is in the critical
11
+ // path of `next dev` and `next build` startup.
12
+ const INITIAL_RETRY_MS = 8;
13
+ const MAX_RETRY_MS = 64;
14
+ const MAX_RETRIES = 6;
15
+ /**
16
+ * Used in unit test.
17
+ * @ignore
18
+ */ export function calcBackoffMs(attempt) {
19
+ return Math.min(INITIAL_RETRY_MS * Math.pow(2, attempt), MAX_RETRY_MS);
20
+ }
21
+ function unlinkPath(p, isDir = false, attempt = 0) {
22
+ try {
23
+ if (isDir) {
24
+ fs.rmdirSync(p);
25
+ } else {
26
+ fs.unlinkSync(p);
27
+ }
28
+ } catch (e) {
29
+ const code = isError(e) && e.code;
30
+ if ((code === 'EBUSY' || code === 'ENOTEMPTY' || code === 'EPERM' || code === 'EMFILE') && attempt < MAX_RETRIES) {
31
+ // retrying is unlikely to succeed on POSIX platforms, but Windows can
32
+ // fail due to temporarily-open files
33
+ return (async ()=>{
34
+ await wait(calcBackoffMs(attempt));
35
+ return unlinkPath(p, isDir, attempt + 1);
36
+ })();
37
+ }
38
+ if (code === 'ENOENT') {
39
+ return;
40
+ }
41
+ throw e;
42
+ }
43
+ }
44
+ const FUTURE_MTIME_TOLERANCE_MS = 60 * 60 * 1000;
45
+ /** Returns whether `p`'s own mtime falls outside the retained time range. */ function isStale(p, staleBefore, futureMtimeThreshold) {
46
+ try {
47
+ // lstat, not stat: a symlink is deleted based on its own age, not its
48
+ // target's.
49
+ const mtimeMs = fs.lstatSync(p).mtimeMs;
50
+ return mtimeMs <= staleBefore || mtimeMs > futureMtimeThreshold;
51
+ } catch (e) {
52
+ if (isError(e) && e.code === 'ENOENT') {
53
+ return false;
54
+ }
55
+ throw e;
56
+ }
57
+ }
58
+ /**
59
+ * Recursively delete directory contents.
60
+ *
61
+ * This is used when cleaning the `distDir`, and is part of the critical path
62
+ * for starting the server, so we use synchronous file IO, as we're always
63
+ * blocked on it anyways.
64
+ *
65
+ * Despite using sync IO, the function signature is still `async` because we
66
+ * asynchronously perform retries.
67
+ */ export async function recursiveDeleteSyncWithAsyncRetries(/** Directory to delete the contents of */ dir, /** Exclude based on relative file path */ exclude, /**
68
+ * Only delete files whose mtime is at least this old. Directories are
69
+ * removed once empty.
70
+ */ maxAgeMs) {
71
+ const now = Date.now();
72
+ await deleteContents(dir, {
73
+ exclude,
74
+ staleBefore: maxAgeMs === undefined ? undefined : now - maxAgeMs,
75
+ futureMtimeThreshold: now + FUTURE_MTIME_TOLERANCE_MS
76
+ });
77
+ }
78
+ /** @returns whether anything was kept. */ async function deleteContents(dir, { exclude, staleBefore, futureMtimeThreshold, previousPath }) {
79
+ let result;
80
+ try {
81
+ result = fs.readdirSync(dir, {
82
+ withFileTypes: true
83
+ });
84
+ } catch (e) {
85
+ if (isError(e) && e.code === 'ENOENT') {
86
+ return false;
87
+ }
88
+ throw e;
89
+ }
90
+ let keptAnything = false;
91
+ await Promise.all(result.map(async (part)=>{
92
+ const absolutePath = join(dir, part.name);
93
+ const pp = join(previousPath ?? '', part.name);
94
+ if (exclude == null ? void 0 : exclude.has(pp)) {
95
+ keptAnything = true;
96
+ return;
97
+ }
98
+ // Note: readdir does not follow symbolic links, that's good: we want to
99
+ // delete the links and not the destination.
100
+ const isDirectory = part.isDirectory();
101
+ if (isDirectory) {
102
+ if (await deleteContents(absolutePath, {
103
+ exclude,
104
+ staleBefore,
105
+ futureMtimeThreshold,
106
+ previousPath: pp
107
+ })) {
108
+ keptAnything = true;
109
+ return;
110
+ }
111
+ } else if (staleBefore !== undefined && !isStale(absolutePath, staleBefore, futureMtimeThreshold)) {
112
+ keptAnything = true;
113
+ return;
114
+ }
115
+ return unlinkPath(absolutePath, isDirectory);
116
+ }));
117
+ return keptAnything;
118
+ }
119
+
120
+ //# sourceMappingURL=recursive-delete.js.map
e-commerce/node_modules/next/dist/esm/lib/recursive-delete.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/recursive-delete.ts"],"sourcesContent":["import type { Dirent } from 'node:fs'\nimport * as fs from 'node:fs'\nimport { join } from 'node:path'\nimport isError from './is-error'\nimport { wait } from './wait'\n\n// We use an exponential backoff. See the unit test for example values.\n//\n// - Node's `fs` module uses a linear backoff, starting with 100ms.\n// - Rust tries 64 times with only a `thread::yield_now` in between.\n//\n// We want something more aggressive, as `recursiveDelete` is in the critical\n// path of `next dev` and `next build` startup.\nconst INITIAL_RETRY_MS = 8\nconst MAX_RETRY_MS = 64\nconst MAX_RETRIES = 6\n\n/**\n * Used in unit test.\n * @ignore\n */\nexport function calcBackoffMs(attempt: number): number {\n return Math.min(INITIAL_RETRY_MS * Math.pow(2, attempt), MAX_RETRY_MS)\n}\n\nfunction unlinkPath(\n p: string,\n isDir = false,\n attempt = 0\n): Promise<void> | void {\n try {\n if (isDir) {\n fs.rmdirSync(p)\n } else {\n fs.unlinkSync(p)\n }\n } catch (e) {\n const code = isError(e) && e.code\n if (\n (code === 'EBUSY' ||\n code === 'ENOTEMPTY' ||\n code === 'EPERM' ||\n code === 'EMFILE') &&\n attempt < MAX_RETRIES\n ) {\n // retrying is unlikely to succeed on POSIX platforms, but Windows can\n // fail due to temporarily-open files\n return (async () => {\n await wait(calcBackoffMs(attempt))\n return unlinkPath(p, isDir, attempt + 1)\n })()\n }\n\n if (code === 'ENOENT') {\n return\n }\n\n throw e\n }\n}\n\nconst FUTURE_MTIME_TOLERANCE_MS = 60 * 60 * 1000\n\n/** Returns whether `p`'s own mtime falls outside the retained time range. */\nfunction isStale(\n p: string,\n staleBefore: number,\n futureMtimeThreshold: number\n): boolean {\n try {\n // lstat, not stat: a symlink is deleted based on its own age, not its\n // target's.\n const mtimeMs = fs.lstatSync(p).mtimeMs\n return mtimeMs <= staleBefore || mtimeMs > futureMtimeThreshold\n } catch (e) {\n if (isError(e) && e.code === 'ENOENT') {\n return false\n }\n throw e\n }\n}\n\n/**\n * Recursively delete directory contents.\n *\n * This is used when cleaning the `distDir`, and is part of the critical path\n * for starting the server, so we use synchronous file IO, as we're always\n * blocked on it anyways.\n *\n * Despite using sync IO, the function signature is still `async` because we\n * asynchronously perform retries.\n */\nexport async function recursiveDeleteSyncWithAsyncRetries(\n /** Directory to delete the contents of */\n dir: string,\n /** Exclude based on relative file path */\n exclude?: ReadonlySet<string>,\n /**\n * Only delete files whose mtime is at least this old. Directories are\n * removed once empty.\n */\n maxAgeMs?: number\n): Promise<void> {\n const now = Date.now()\n await deleteContents(dir, {\n exclude,\n staleBefore: maxAgeMs === undefined ? undefined : now - maxAgeMs,\n futureMtimeThreshold: now + FUTURE_MTIME_TOLERANCE_MS,\n })\n}\n\n/** @returns whether anything was kept. */\nasync function deleteContents(\n dir: string,\n {\n exclude,\n staleBefore,\n futureMtimeThreshold,\n previousPath,\n }: {\n exclude: ReadonlySet<string> | undefined\n staleBefore: number | undefined\n futureMtimeThreshold: number\n /** Relative path to the directory being deleted, used for exclude */\n previousPath?: string\n }\n): Promise<boolean> {\n let result\n try {\n result = fs.readdirSync(dir, { withFileTypes: true })\n } catch (e) {\n if (isError(e) && e.code === 'ENOENT') {\n return false\n }\n throw e\n }\n\n let keptAnything = false\n\n await Promise.all(\n result.map(async (part: Dirent) => {\n const absolutePath = join(dir, part.name)\n const pp = join(previousPath ?? '', part.name)\n\n if (exclude?.has(pp)) {\n keptAnything = true\n return\n }\n\n // Note: readdir does not follow symbolic links, that's good: we want to\n // delete the links and not the destination.\n const isDirectory = part.isDirectory()\n if (isDirectory) {\n if (\n await deleteContents(absolutePath, {\n exclude,\n staleBefore,\n futureMtimeThreshold,\n previousPath: pp,\n })\n ) {\n keptAnything = true\n return\n }\n } else if (\n staleBefore !== undefined &&\n !isStale(absolutePath, staleBefore, futureMtimeThreshold)\n ) {\n keptAnything = true\n return\n }\n\n return unlinkPath(absolutePath, isDirectory)\n })\n )\n return keptAnything\n}\n"],"names":["fs","join","isError","wait","INITIAL_RETRY_MS","MAX_RETRY_MS","MAX_RETRIES","calcBackoffMs","attempt","Math","min","pow","unlinkPath","p","isDir","rmdirSync","unlinkSync","e","code","FUTURE_MTIME_TOLERANCE_MS","isStale","staleBefore","futureMtimeThreshold","mtimeMs","lstatSync","recursiveDeleteSyncWithAsyncRetries","dir","exclude","maxAgeMs","now","Date","deleteContents","undefined","previousPath","result","readdirSync","withFileTypes","keptAnything","Promise","all","map","part","absolutePath","name","pp","has","isDirectory"],"mappings":"AACA,YAAYA,QAAQ,UAAS;AAC7B,SAASC,IAAI,QAAQ,YAAW;AAChC,OAAOC,aAAa,aAAY;AAChC,SAASC,IAAI,QAAQ,SAAQ;AAE7B,uEAAuE;AACvE,EAAE;AACF,mEAAmE;AACnE,oEAAoE;AACpE,EAAE;AACF,6EAA6E;AAC7E,+CAA+C;AAC/C,MAAMC,mBAAmB;AACzB,MAAMC,eAAe;AACrB,MAAMC,cAAc;AAEpB;;;CAGC,GACD,OAAO,SAASC,cAAcC,OAAe;IAC3C,OAAOC,KAAKC,GAAG,CAACN,mBAAmBK,KAAKE,GAAG,CAAC,GAAGH,UAAUH;AAC3D;AAEA,SAASO,WACPC,CAAS,EACTC,QAAQ,KAAK,EACbN,UAAU,CAAC;IAEX,IAAI;QACF,IAAIM,OAAO;YACTd,GAAGe,SAAS,CAACF;QACf,OAAO;YACLb,GAAGgB,UAAU,CAACH;QAChB;IACF,EAAE,OAAOI,GAAG;QACV,MAAMC,OAAOhB,QAAQe,MAAMA,EAAEC,IAAI;QACjC,IACE,AAACA,CAAAA,SAAS,WACRA,SAAS,eACTA,SAAS,WACTA,SAAS,QAAO,KAClBV,UAAUF,aACV;YACA,sEAAsE;YACtE,qCAAqC;YACrC,OAAO,AAAC,CAAA;gBACN,MAAMH,KAAKI,cAAcC;gBACzB,OAAOI,WAAWC,GAAGC,OAAON,UAAU;YACxC,CAAA;QACF;QAEA,IAAIU,SAAS,UAAU;YACrB;QACF;QAEA,MAAMD;IACR;AACF;AAEA,MAAME,4BAA4B,KAAK,KAAK;AAE5C,2EAA2E,GAC3E,SAASC,QACPP,CAAS,EACTQ,WAAmB,EACnBC,oBAA4B;IAE5B,IAAI;QACF,sEAAsE;QACtE,YAAY;QACZ,MAAMC,UAAUvB,GAAGwB,SAAS,CAACX,GAAGU,OAAO;QACvC,OAAOA,WAAWF,eAAeE,UAAUD;IAC7C,EAAE,OAAOL,GAAG;QACV,IAAIf,QAAQe,MAAMA,EAAEC,IAAI,KAAK,UAAU;YACrC,OAAO;QACT;QACA,MAAMD;IACR;AACF;AAEA;;;;;;;;;CASC,GACD,OAAO,eAAeQ,oCACpB,wCAAwC,GACxCC,GAAW,EACX,wCAAwC,GACxCC,OAA6B,EAC7B;;;GAGC,GACDC,QAAiB;IAEjB,MAAMC,MAAMC,KAAKD,GAAG;IACpB,MAAME,eAAeL,KAAK;QACxBC;QACAN,aAAaO,aAAaI,YAAYA,YAAYH,MAAMD;QACxDN,sBAAsBO,MAAMV;IAC9B;AACF;AAEA,wCAAwC,GACxC,eAAeY,eACbL,GAAW,EACX,EACEC,OAAO,EACPN,WAAW,EACXC,oBAAoB,EACpBW,YAAY,EAOb;IAED,IAAIC;IACJ,IAAI;QACFA,SAASlC,GAAGmC,WAAW,CAACT,KAAK;YAAEU,eAAe;QAAK;IACrD,EAAE,OAAOnB,GAAG;QACV,IAAIf,QAAQe,MAAMA,EAAEC,IAAI,KAAK,UAAU;YACrC,OAAO;QACT;QACA,MAAMD;IACR;IAEA,IAAIoB,eAAe;IAEnB,MAAMC,QAAQC,GAAG,CACfL,OAAOM,GAAG,CAAC,OAAOC;QAChB,MAAMC,eAAezC,KAAKyB,KAAKe,KAAKE,IAAI;QACxC,MAAMC,KAAK3C,KAAKgC,gBAAgB,IAAIQ,KAAKE,IAAI;QAE7C,IAAIhB,2BAAAA,QAASkB,GAAG,CAACD,KAAK;YACpBP,eAAe;YACf;QACF;QAEA,wEAAwE;QACxE,4CAA4C;QAC5C,MAAMS,cAAcL,KAAKK,WAAW;QACpC,IAAIA,aAAa;YACf,IACE,MAAMf,eAAeW,cAAc;gBACjCf;gBACAN;gBACAC;gBACAW,cAAcW;YAChB,IACA;gBACAP,eAAe;gBACf;YACF;QACF,OAAO,IACLhB,gBAAgBW,aAChB,CAACZ,QAAQsB,cAAcrB,aAAaC,uBACpC;YACAe,eAAe;YACf;QACF;QAEA,OAAOzB,WAAW8B,cAAcI;IAClC;IAEF,OAAOT;AACT","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/recursive-readdir.js ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ /**
4
+ * Recursively reads a directory and returns the list of pathnames.
5
+ *
6
+ * @param rootDirectory the directory to read
7
+ * @param options options to control the behavior of the recursive read
8
+ * @returns the list of pathnames
9
+ */ export async function recursiveReadDir(rootDirectory, options = {}) {
10
+ // Grab our options.
11
+ const { pathnameFilter, ignoreFilter, ignorePartFilter, sortPathnames = true, relativePathnames = true } = options;
12
+ // The list of pathnames to return.
13
+ const pathnames = [];
14
+ /**
15
+ * Coerces the pathname to be relative if requested.
16
+ */ const coerce = relativePathnames ? (pathname)=>pathname.replace(rootDirectory, '') : (pathname)=>pathname;
17
+ // The queue of directories to scan.
18
+ let directories = [
19
+ rootDirectory
20
+ ];
21
+ while(directories.length > 0){
22
+ // Load all the files in each directory at the same time.
23
+ const results = await Promise.all(directories.map(async (directory)=>{
24
+ const result = {
25
+ directories: [],
26
+ pathnames: [],
27
+ links: []
28
+ };
29
+ try {
30
+ const dir = await fs.readdir(directory, {
31
+ withFileTypes: true
32
+ });
33
+ for (const file of dir){
34
+ // If enabled, ignore the file if it matches the ignore filter.
35
+ if (ignorePartFilter && ignorePartFilter(file.name)) {
36
+ continue;
37
+ }
38
+ // Handle each file.
39
+ const absolutePathname = path.join(directory, file.name);
40
+ // If enabled, ignore the file if it matches the ignore filter.
41
+ if (ignoreFilter && ignoreFilter(absolutePathname)) {
42
+ continue;
43
+ }
44
+ // If the file is a directory, then add it to the list of directories,
45
+ // they'll be scanned on a later pass.
46
+ if (file.isDirectory()) {
47
+ result.directories.push(absolutePathname);
48
+ } else if (file.isSymbolicLink()) {
49
+ result.links.push(absolutePathname);
50
+ } else if (!pathnameFilter || pathnameFilter(absolutePathname)) {
51
+ result.pathnames.push(coerce(absolutePathname));
52
+ }
53
+ }
54
+ } catch (err) {
55
+ // This can only happen when the underlying directory was removed. If
56
+ // anything other than this error occurs, re-throw it.
57
+ // if (err.code !== 'ENOENT') throw err
58
+ if (err.code !== 'ENOENT' || directory === rootDirectory) throw err;
59
+ // The error occurred, so abandon reading this directory.
60
+ return null;
61
+ }
62
+ return result;
63
+ }));
64
+ // Empty the directories, we'll fill it later if some of the files are
65
+ // directories.
66
+ directories = [];
67
+ // Keep track of any symbolic links we find, we'll resolve them later.
68
+ const links = [];
69
+ // For each result of directory scans...
70
+ for (const result of results){
71
+ // If the directory was removed, then skip it.
72
+ if (!result) continue;
73
+ // Add any directories to the list of directories to scan.
74
+ directories.push(...result.directories);
75
+ // Add any symbolic links to the list of symbolic links to resolve.
76
+ links.push(...result.links);
77
+ // Add any file pathnames to the list of pathnames.
78
+ pathnames.push(...result.pathnames);
79
+ }
80
+ // Resolve all the symbolic links we found if any.
81
+ if (links.length > 0) {
82
+ const resolved = await Promise.all(links.map(async (absolutePathname)=>{
83
+ try {
84
+ return await fs.stat(absolutePathname);
85
+ } catch (err) {
86
+ // This can only happen when the underlying link was removed. If
87
+ // anything other than this error occurs, re-throw it.
88
+ if (err.code !== 'ENOENT') throw err;
89
+ // The error occurred, so abandon reading this directory.
90
+ return null;
91
+ }
92
+ }));
93
+ for(let i = 0; i < links.length; i++){
94
+ const stats = resolved[i];
95
+ // If the link was removed, then skip it.
96
+ if (!stats) continue;
97
+ // We would have already ignored the file if it matched the ignore
98
+ // filter, so we don't need to check it again.
99
+ const absolutePathname = links[i];
100
+ if (stats.isDirectory()) {
101
+ directories.push(absolutePathname);
102
+ } else if (!pathnameFilter || pathnameFilter(absolutePathname)) {
103
+ pathnames.push(coerce(absolutePathname));
104
+ }
105
+ }
106
+ }
107
+ }
108
+ // Sort the pathnames in place if requested.
109
+ if (sortPathnames) {
110
+ pathnames.sort();
111
+ }
112
+ return pathnames;
113
+ }
114
+
115
+ //# sourceMappingURL=recursive-readdir.js.map
e-commerce/node_modules/next/dist/esm/lib/recursive-readdir.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/recursive-readdir.ts"],"sourcesContent":["import fs from 'fs/promises'\nimport path from 'path'\n\ntype Filter = (pathname: string) => boolean\n\ntype Result = {\n directories: string[]\n pathnames: string[]\n links: string[]\n}\n\nexport type RecursiveReadDirOptions = {\n /**\n * Filter to ignore files with absolute pathnames, false to ignore.\n */\n pathnameFilter?: Filter\n\n /**\n * Filter to ignore files and directories with absolute pathnames, false to\n * ignore.\n */\n ignoreFilter?: Filter\n\n /**\n * Filter to ignore files and directories with the pathname part, false to\n * ignore.\n */\n ignorePartFilter?: Filter\n\n /**\n * Whether to sort the results, true by default.\n */\n sortPathnames?: boolean\n\n /**\n * Whether to return relative pathnames, true by default.\n */\n relativePathnames?: boolean\n}\n\n/**\n * Recursively reads a directory and returns the list of pathnames.\n *\n * @param rootDirectory the directory to read\n * @param options options to control the behavior of the recursive read\n * @returns the list of pathnames\n */\nexport async function recursiveReadDir(\n rootDirectory: string,\n options: RecursiveReadDirOptions = {}\n): Promise<string[]> {\n // Grab our options.\n const {\n pathnameFilter,\n ignoreFilter,\n ignorePartFilter,\n sortPathnames = true,\n relativePathnames = true,\n } = options\n\n // The list of pathnames to return.\n const pathnames: string[] = []\n\n /**\n * Coerces the pathname to be relative if requested.\n */\n const coerce = relativePathnames\n ? (pathname: string) => pathname.replace(rootDirectory, '')\n : (pathname: string) => pathname\n\n // The queue of directories to scan.\n let directories: string[] = [rootDirectory]\n\n while (directories.length > 0) {\n // Load all the files in each directory at the same time.\n const results = await Promise.all(\n directories.map(async (directory) => {\n const result: Result = { directories: [], pathnames: [], links: [] }\n\n try {\n const dir = await fs.readdir(directory, { withFileTypes: true })\n for (const file of dir) {\n // If enabled, ignore the file if it matches the ignore filter.\n if (ignorePartFilter && ignorePartFilter(file.name)) {\n continue\n }\n\n // Handle each file.\n const absolutePathname = path.join(directory, file.name)\n\n // If enabled, ignore the file if it matches the ignore filter.\n if (ignoreFilter && ignoreFilter(absolutePathname)) {\n continue\n }\n\n // If the file is a directory, then add it to the list of directories,\n // they'll be scanned on a later pass.\n if (file.isDirectory()) {\n result.directories.push(absolutePathname)\n } else if (file.isSymbolicLink()) {\n result.links.push(absolutePathname)\n } else if (!pathnameFilter || pathnameFilter(absolutePathname)) {\n result.pathnames.push(coerce(absolutePathname))\n }\n }\n } catch (err: any) {\n // This can only happen when the underlying directory was removed. If\n // anything other than this error occurs, re-throw it.\n // if (err.code !== 'ENOENT') throw err\n if (err.code !== 'ENOENT' || directory === rootDirectory) throw err\n\n // The error occurred, so abandon reading this directory.\n return null\n }\n\n return result\n })\n )\n\n // Empty the directories, we'll fill it later if some of the files are\n // directories.\n directories = []\n\n // Keep track of any symbolic links we find, we'll resolve them later.\n const links = []\n\n // For each result of directory scans...\n for (const result of results) {\n // If the directory was removed, then skip it.\n if (!result) continue\n\n // Add any directories to the list of directories to scan.\n directories.push(...result.directories)\n\n // Add any symbolic links to the list of symbolic links to resolve.\n links.push(...result.links)\n\n // Add any file pathnames to the list of pathnames.\n pathnames.push(...result.pathnames)\n }\n\n // Resolve all the symbolic links we found if any.\n if (links.length > 0) {\n const resolved = await Promise.all(\n links.map(async (absolutePathname) => {\n try {\n return await fs.stat(absolutePathname)\n } catch (err: any) {\n // This can only happen when the underlying link was removed. If\n // anything other than this error occurs, re-throw it.\n if (err.code !== 'ENOENT') throw err\n\n // The error occurred, so abandon reading this directory.\n return null\n }\n })\n )\n\n for (let i = 0; i < links.length; i++) {\n const stats = resolved[i]\n\n // If the link was removed, then skip it.\n if (!stats) continue\n\n // We would have already ignored the file if it matched the ignore\n // filter, so we don't need to check it again.\n const absolutePathname = links[i]\n\n if (stats.isDirectory()) {\n directories.push(absolutePathname)\n } else if (!pathnameFilter || pathnameFilter(absolutePathname)) {\n pathnames.push(coerce(absolutePathname))\n }\n }\n }\n }\n\n // Sort the pathnames in place if requested.\n if (sortPathnames) {\n pathnames.sort()\n }\n\n return pathnames\n}\n"],"names":["fs","path","recursiveReadDir","rootDirectory","options","pathnameFilter","ignoreFilter","ignorePartFilter","sortPathnames","relativePathnames","pathnames","coerce","pathname","replace","directories","length","results","Promise","all","map","directory","result","links","dir","readdir","withFileTypes","file","name","absolutePathname","join","isDirectory","push","isSymbolicLink","err","code","resolved","stat","i","stats","sort"],"mappings":"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","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/redirect-status.js ADDED
@@ -0,0 +1,23 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { RedirectStatusCode } from '../client/components/redirect-status-code';
2
+ export const allowedStatusCodes = new Set([
3
+ 301,
4
+ 302,
5
+ 303,
6
+ 307,
7
+ 308
8
+ ]);
9
+ export function getRedirectStatus(route) {
10
+ return route.statusCode || (route.permanent ? RedirectStatusCode.PermanentRedirect : RedirectStatusCode.TemporaryRedirect);
11
+ }
12
+ // for redirects we restrict matching /_next and for all routes
13
+ // we add an optional trailing slash at the end for easier
14
+ // configuring between trailingSlash: true/false
15
+ export function modifyRouteRegex(regex, restrictedPaths) {
16
+ if (restrictedPaths) {
17
+ regex = regex.replace(/\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\//g, '\\/')).join('|')})`);
18
+ }
19
+ regex = regex.replace(/\$$/, '(?:\\/)?$');
20
+ return regex;
21
+ }
22
+
23
+ //# sourceMappingURL=redirect-status.js.map
e-commerce/node_modules/next/dist/esm/lib/redirect-status.js.map ADDED
@@ -0,0 +1 @@
 
 
1
+ {"version":3,"sources":["../../../src/lib/redirect-status.ts"],"sourcesContent":["import { RedirectStatusCode } from '../client/components/redirect-status-code'\n\nexport const allowedStatusCodes = new Set([301, 302, 303, 307, 308])\n\nexport function getRedirectStatus(route: {\n statusCode?: number\n permanent?: boolean\n}): number {\n return (\n route.statusCode ||\n (route.permanent\n ? RedirectStatusCode.PermanentRedirect\n : RedirectStatusCode.TemporaryRedirect)\n )\n}\n\n// for redirects we restrict matching /_next and for all routes\n// we add an optional trailing slash at the end for easier\n// configuring between trailingSlash: true/false\nexport function modifyRouteRegex(regex: string, restrictedPaths?: string[]) {\n if (restrictedPaths) {\n regex = regex.replace(\n /\\^/,\n `^(?!${restrictedPaths\n .map((path) => path.replace(/\\//g, '\\\\/'))\n .join('|')})`\n )\n }\n regex = regex.replace(/\\$$/, '(?:\\\\/)?$')\n return regex\n}\n"],"names":["RedirectStatusCode","allowedStatusCodes","Set","getRedirectStatus","route","statusCode","permanent","PermanentRedirect","TemporaryRedirect","modifyRouteRegex","regex","restrictedPaths","replace","map","path","join"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,4CAA2C;AAE9E,OAAO,MAAMC,qBAAqB,IAAIC,IAAI;IAAC;IAAK;IAAK;IAAK;IAAK;CAAI,EAAC;AAEpE,OAAO,SAASC,kBAAkBC,KAGjC;IACC,OACEA,MAAMC,UAAU,IACfD,CAAAA,MAAME,SAAS,GACZN,mBAAmBO,iBAAiB,GACpCP,mBAAmBQ,iBAAiB,AAAD;AAE3C;AAEA,+DAA+D;AAC/D,0DAA0D;AAC1D,gDAAgD;AAChD,OAAO,SAASC,iBAAiBC,KAAa,EAAEC,eAA0B;IACxE,IAAIA,iBAAiB;QACnBD,QAAQA,MAAME,OAAO,CACnB,MACA,CAAC,IAAI,EAAED,gBACJE,GAAG,CAAC,CAACC,OAASA,KAAKF,OAAO,CAAC,OAAO,QAClCG,IAAI,CAAC,KAAK,CAAC,CAAC;IAEnB;IACAL,QAAQA,MAAME,OAAO,CAAC,OAAO;IAC7B,OAAOF;AACT","ignoreList":[0]}
e-commerce/node_modules/next/dist/esm/lib/require-instrumentation-client.js ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /**
2
+ * This module imports the configured client instrumentation modules.
3
+ *
4
+ * The `private-next-instrumentation-client` module is automatically aliased to
5
+ * either the user's instrumentation module or a generated module array.
6
+ */ if (process.env.NODE_ENV === 'development') {
7
+ const measureName = 'Client Instrumentation Hook';
8
+ const startTime = performance.now();
9
+ // eslint-disable-next-line @next/internal/typechecked-require -- Not a module.
10
+ const instrumentationClient = require('private-next-instrumentation-client');
11
+ module.exports = Array.isArray(instrumentationClient) ? instrumentationClient : [
12
+ instrumentationClient
13
+ ];
14
+ const endTime = performance.now();
15
+ const duration = endTime - startTime;
16
+ // Using 16ms threshold as it represents one frame (1000ms/60fps)
17
+ // This helps identify if the instrumentation hook initialization
18
+ // could potentially cause frame drops during development.
19
+ const THRESHOLD = 16;
20
+ if (duration > THRESHOLD) {
21
+ console.log(`[${measureName}] Slow execution detected: ${duration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);
22
+ }
23
+ } else {
24
+ // eslint-disable-next-line @next/internal/typechecked-require -- Not a module.
25
+ const instrumentationClient = require('private-next-instrumentation-client');
26
+ module.exports = Array.isArray(instrumentationClient) ? instrumentationClient : [
27
+ instrumentationClient
28
+ ];
29
+ }
30
+
31
+ //# sourceMappingURL=require-instrumentation-client.js.map