@wix/cli 1.1.63 → 1.1.65

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/build/{DevCommand-3ELW3L6N.js → DevCommand-AVJ663GA.js} +72 -40
  2. package/build/DevCommand-AVJ663GA.js.map +1 -0
  3. package/build/{DevCommand-VKO2WHGU.js → DevCommand-IHVIU2N4.js} +12 -12
  4. package/build/{LoginCommand-Y4STX5I4.js → LoginCommand-XQFHRT7W.js} +10 -10
  5. package/build/{LogoutCommand-IXNGVG5L.js → LogoutCommand-YY7MRKCM.js} +7 -7
  6. package/build/PreviewCommand-3OABJYJD.js +70 -0
  7. package/build/PreviewCommand-3OABJYJD.js.map +1 -0
  8. package/build/PublishCommand-ISZPYYXM.js +117 -0
  9. package/build/PublishCommand-ISZPYYXM.js.map +1 -0
  10. package/build/{WhoamiCommand-UJUYYBBU.js → WhoamiCommand-GWPNPHRL.js} +4 -4
  11. package/build/{chunk-2NWGTFAC.js → chunk-2K5KKUL3.js} +5 -3
  12. package/build/{chunk-2NWGTFAC.js.map → chunk-2K5KKUL3.js.map} +1 -1
  13. package/build/{chunk-RESBATTJ.js → chunk-3P5PTIBR.js} +2 -2
  14. package/build/{chunk-HU33E37I.js → chunk-4XPWCRGU.js} +276 -278
  15. package/build/{chunk-HU33E37I.js.map → chunk-4XPWCRGU.js.map} +1 -1
  16. package/build/{chunk-IVOZDAHR.js → chunk-5WRZJFXK.js} +5 -5
  17. package/build/{chunk-QKFGKDHU.js → chunk-AOWEDNOF.js} +348 -583
  18. package/build/chunk-AOWEDNOF.js.map +1 -0
  19. package/build/{chunk-EYBRAJ77.js → chunk-BCT5PAPG.js} +6 -6
  20. package/build/{chunk-3JTFUCV6.js → chunk-BEXERG7F.js} +48 -5
  21. package/build/chunk-BEXERG7F.js.map +1 -0
  22. package/build/{chunk-BGKFJNUK.js → chunk-CNXKF7E3.js} +16 -14
  23. package/build/chunk-CNXKF7E3.js.map +1 -0
  24. package/build/{chunk-QI3N3YSP.js → chunk-IC6K6CSD.js} +3 -3
  25. package/build/{chunk-3FASMGNL.js → chunk-JASQWANH.js} +3 -3
  26. package/build/{chunk-BRYY76CH.js → chunk-JKBX72QC.js} +4 -4
  27. package/build/{chunk-TOWDJ5TL.js → chunk-JXGBYZK7.js} +14 -17
  28. package/build/chunk-JXGBYZK7.js.map +1 -0
  29. package/build/{chunk-BTM6MXTF.js → chunk-KJCRO3PB.js} +5 -5
  30. package/build/{chunk-3WRRBP7H.js → chunk-KJXGVQP7.js} +7 -7
  31. package/build/{chunk-HNWUYQMU.js → chunk-N4L3XZI3.js} +4 -4
  32. package/build/{PreviewCommand-45QLRRAO.js → chunk-NXGJ6P6H.js} +67 -123
  33. package/build/chunk-NXGJ6P6H.js.map +1 -0
  34. package/build/{chunk-IFBC6MP5.js → chunk-PWEJ3IWM.js} +4 -2
  35. package/build/{chunk-IFBC6MP5.js.map → chunk-PWEJ3IWM.js.map} +1 -1
  36. package/build/{chunk-HIHMLMRD.js → chunk-QP2SHVU3.js} +2 -2
  37. package/build/{chunk-LR6CHFGP.js → chunk-QPYNVASM.js} +2 -2
  38. package/build/{chunk-WBF5ALFE.js → chunk-TIHCOJHY.js} +4 -4
  39. package/build/{chunk-R4KXK4HG.js → chunk-UHGVP5PT.js} +3 -3
  40. package/build/{chunk-XCXYK7C7.js → chunk-UK7CHIDM.js} +2 -2
  41. package/build/chunk-UQM2YHYJ.js +30 -0
  42. package/build/chunk-UQM2YHYJ.js.map +1 -0
  43. package/build/{chunk-JR2KZTME.js → chunk-YHMLI3NZ.js} +2 -2
  44. package/build/{chunk-WSW2V2ZB.js → chunk-YX66M2XN.js} +2 -2
  45. package/build/{chunk-UPXCPX6R.js → chunk-Z3MJ3WPQ.js} +11 -5
  46. package/build/{chunk-UPXCPX6R.js.map → chunk-Z3MJ3WPQ.js.map} +1 -1
  47. package/build/{chunk-FO4JMX7I.js → chunk-Z4TKBS7R.js} +4 -4
  48. package/build/{chunk-FO4JMX7I.js.map → chunk-Z4TKBS7R.js.map} +1 -1
  49. package/build/{chunk-SYSWGRNF.js → chunk-ZLPYLX6E.js} +27 -11
  50. package/build/{chunk-SYSWGRNF.js.map → chunk-ZLPYLX6E.js.map} +1 -1
  51. package/build/{chunk-DGB22FOE.js → chunk-ZM6OUS2J.js} +5 -5
  52. package/build/{dev-BEXFZPJS.js → dev-62KN3SLL.js} +26 -26
  53. package/build/dev-62KN3SLL.js.map +1 -0
  54. package/build/index.js +26 -26
  55. package/build/{install-KBEEKENQ.js → install-L6C6V6OD.js} +14 -14
  56. package/build/{preview-YOWBWDEY.js → preview-LDXRFIMB.js} +17 -17
  57. package/build/{publish-KH6HTTQW.js → publish-FNN2BROO.js} +19 -19
  58. package/build/{render-command-E74W4QNK.js → render-command-GLPKMOXW.js} +10 -10
  59. package/build/{render-command-4FI34WBA.js → render-command-IPDLSBIH.js} +9 -9
  60. package/build/{render-command-VY7HKWP4.js → render-command-RBG7263F.js} +11 -11
  61. package/build/{run-command-3FVZZEPI.js → run-command-DDRX6HA4.js} +6 -6
  62. package/build/{src-KVHMNIWM.js → src-5FM5LBPG.js} +34 -10
  63. package/build/src-5FM5LBPG.js.map +1 -0
  64. package/build/{src-XSN6C5L2.js → src-DFC4OJXU.js} +3 -3
  65. package/build/{src-JHDL6HRJ.js → src-NDQ3YSVS.js} +6 -6
  66. package/build/{src-U4W7RS6S.js → src-QDEPJEVY.js} +4 -4
  67. package/build/{src-ECBBCYB3.js → src-RLHCQYHW.js} +2 -2
  68. package/build/{src-QOI2D3S4.js → src-WZQSHEYJ.js} +7 -7
  69. package/build/{src-4XL5NTJS.js → src-YKFH53HG.js} +17 -17
  70. package/build/{sync-types-TMGYTVGL.js → sync-types-5QBTKL42.js} +12 -12
  71. package/build/{uninstall-KAFGDOR7.js → uninstall-X66KBPSO.js} +14 -14
  72. package/package.json +2 -2
  73. package/build/DevCommand-3ELW3L6N.js.map +0 -1
  74. package/build/PreviewCommand-45QLRRAO.js.map +0 -1
  75. package/build/chunk-3JTFUCV6.js.map +0 -1
  76. package/build/chunk-BGKFJNUK.js.map +0 -1
  77. package/build/chunk-QKFGKDHU.js.map +0 -1
  78. package/build/chunk-TOWDJ5TL.js.map +0 -1
  79. package/build/chunk-VXGNI7CP.js +0 -21
  80. package/build/chunk-VXGNI7CP.js.map +0 -1
  81. package/build/dev-BEXFZPJS.js.map +0 -1
  82. package/build/src-KVHMNIWM.js.map +0 -1
  83. /package/build/{DevCommand-VKO2WHGU.js.map → DevCommand-IHVIU2N4.js.map} +0 -0
  84. /package/build/{LoginCommand-Y4STX5I4.js.map → LoginCommand-XQFHRT7W.js.map} +0 -0
  85. /package/build/{LogoutCommand-IXNGVG5L.js.map → LogoutCommand-YY7MRKCM.js.map} +0 -0
  86. /package/build/{WhoamiCommand-UJUYYBBU.js.map → WhoamiCommand-GWPNPHRL.js.map} +0 -0
  87. /package/build/{chunk-RESBATTJ.js.map → chunk-3P5PTIBR.js.map} +0 -0
  88. /package/build/{chunk-IVOZDAHR.js.map → chunk-5WRZJFXK.js.map} +0 -0
  89. /package/build/{chunk-EYBRAJ77.js.map → chunk-BCT5PAPG.js.map} +0 -0
  90. /package/build/{chunk-QI3N3YSP.js.map → chunk-IC6K6CSD.js.map} +0 -0
  91. /package/build/{chunk-3FASMGNL.js.map → chunk-JASQWANH.js.map} +0 -0
  92. /package/build/{chunk-BRYY76CH.js.map → chunk-JKBX72QC.js.map} +0 -0
  93. /package/build/{chunk-BTM6MXTF.js.map → chunk-KJCRO3PB.js.map} +0 -0
  94. /package/build/{chunk-3WRRBP7H.js.map → chunk-KJXGVQP7.js.map} +0 -0
  95. /package/build/{chunk-HNWUYQMU.js.map → chunk-N4L3XZI3.js.map} +0 -0
  96. /package/build/{chunk-HIHMLMRD.js.map → chunk-QP2SHVU3.js.map} +0 -0
  97. /package/build/{chunk-LR6CHFGP.js.map → chunk-QPYNVASM.js.map} +0 -0
  98. /package/build/{chunk-WBF5ALFE.js.map → chunk-TIHCOJHY.js.map} +0 -0
  99. /package/build/{chunk-R4KXK4HG.js.map → chunk-UHGVP5PT.js.map} +0 -0
  100. /package/build/{chunk-XCXYK7C7.js.map → chunk-UK7CHIDM.js.map} +0 -0
  101. /package/build/{chunk-JR2KZTME.js.map → chunk-YHMLI3NZ.js.map} +0 -0
  102. /package/build/{chunk-WSW2V2ZB.js.map → chunk-YX66M2XN.js.map} +0 -0
  103. /package/build/{chunk-DGB22FOE.js.map → chunk-ZM6OUS2J.js.map} +0 -0
  104. /package/build/{install-KBEEKENQ.js.map → install-L6C6V6OD.js.map} +0 -0
  105. /package/build/{preview-YOWBWDEY.js.map → preview-LDXRFIMB.js.map} +0 -0
  106. /package/build/{publish-KH6HTTQW.js.map → publish-FNN2BROO.js.map} +0 -0
  107. /package/build/{render-command-E74W4QNK.js.map → render-command-GLPKMOXW.js.map} +0 -0
  108. /package/build/{render-command-4FI34WBA.js.map → render-command-IPDLSBIH.js.map} +0 -0
  109. /package/build/{render-command-VY7HKWP4.js.map → render-command-RBG7263F.js.map} +0 -0
  110. /package/build/{run-command-3FVZZEPI.js.map → run-command-DDRX6HA4.js.map} +0 -0
  111. /package/build/{src-ECBBCYB3.js.map → src-DFC4OJXU.js.map} +0 -0
  112. /package/build/{src-JHDL6HRJ.js.map → src-NDQ3YSVS.js.map} +0 -0
  113. /package/build/{src-QOI2D3S4.js.map → src-QDEPJEVY.js.map} +0 -0
  114. /package/build/{src-U4W7RS6S.js.map → src-RLHCQYHW.js.map} +0 -0
  115. /package/build/{src-XSN6C5L2.js.map → src-WZQSHEYJ.js.map} +0 -0
  116. /package/build/{src-4XL5NTJS.js.map → src-YKFH53HG.js.map} +0 -0
  117. /package/build/{sync-types-TMGYTVGL.js.map → sync-types-5QBTKL42.js.map} +0 -0
  118. /package/build/{uninstall-KAFGDOR7.js.map → uninstall-X66KBPSO.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../cli-site/src/components/PreviewCommand/PreviewCommand.tsx","../../document-management-client/src/index.ts","../../document-management-client/src/document-management-client.ts","../../document-management-client/src/schemas.ts","../../document-management-client/src/useDocumentManagementClient.ts","../../cli-site/src/components/PreviewCommand/useCreatePreview.ts","../../../node_modules/@wix/anyide-document-deployment/dist/index.js","../../../node_modules/@wix/anyide-document-deployment/dist/apis/updateSite.js","../../../node_modules/@wix/anyide-document-deployment/dist/apis/urls.js","../../../node_modules/@wix/anyide-document-deployment/dist/utils/filterDocumentPagesByHashes.js","../../../node_modules/@wix/anyide-document-deployment/dist/utils/hashWml.js","../../../node_modules/@wix/anyide-document-deployment/dist/status.js","../../../node_modules/@wix/anyide-document-deployment/dist/apis/getTaskStatus.js","../../../node_modules/@wix/anyide-document-deployment/dist/apis/getBase.js","../../cli-site/src/components/PreviewCommand/useDeploySitePreview.ts","../../cli-site/src/velo.ts","../../cli-site/src/files/wix.lock.ts"],"sourcesContent":["import React from 'react';\nimport type { FC } from 'react';\nimport { match } from 'variant';\nimport { Trans } from '@wix/cli-i18n';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { DeploymentPipelinesStatus } from '@wix/document-management-client';\nimport { useAsync, Spinner, Alert, Badge, Link } from '@wix/cli-ui-kit';\nimport { useCreatePreview } from './useCreatePreview.js';\n\nexport const PreviewCommand: FC = () => {\n const createPreview = useCreatePreview();\n\n const { status } = useAsync(async () => {\n const preview = await createPreview();\n\n if (preview.deploymentStatus === DeploymentPipelinesStatus.ERROR) {\n throw new CliError({\n code: CliErrorCode.DeploymentPipelineFailed({\n tasksDescriptions: preview.deploymentTasksDescriptions,\n }),\n cause: null,\n });\n }\n\n return preview;\n }, []);\n\n return match(status, {\n Error: () => null,\n Loading: () => (\n <Spinner text={<Trans i18nKey=\"preview_command.loading\" />} />\n ),\n Success: ({ result: { deploymentShortUrl, deploymentUrl } }) => (\n <Alert type=\"success\">\n <Badge skin=\"success\">\n <Trans i18nKey=\"general.success\" />\n </Badge>{' '}\n <Trans\n i18nKey=\"preview_command.success\"\n components={[<Link url={deploymentShortUrl ?? deploymentUrl} />]}\n />\n </Alert>\n ),\n });\n};\n","export {\n TaskStatus,\n DeploymentPipelinesStatus,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\nexport type { TaskDescription } from './schemas.js';\nexport { DocumentManagementClient } from './document-management-client.js';\nexport { useDocumentManagementClient } from './useDocumentManagementClient.js';\n","import type { HttpClient } from '@wix/cli-http-client';\nimport pRetry from 'p-retry';\nimport type { Options } from 'p-retry';\nimport pWaitFor from 'p-wait-for';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport {\n getDeployment,\n getDeploymentPipelineDescription,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/http';\nimport { DeploymentPipelinesStatus } from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\nimport type { TaskDescription } from './schemas.js';\nimport {\n getDeploymentSchema,\n getDeploymentPipelineDescriptionSchema,\n} from './schemas.js';\n\nconst { minRetryTimeout, pollInterval } = getTestOverrides();\n\nconst VELO_PIPELINE_ID = '5c696513-2584-4f19-ae0f-a559dd649482';\n\ntype DeploymentDetails =\n | {\n deploymentStatus: DeploymentPipelinesStatus.SUCCESS;\n }\n | {\n deploymentStatus: DeploymentPipelinesStatus.ERROR;\n deploymentTasksDescriptions: TaskDescription[];\n };\n\nexport class DocumentManagementClient {\n private readonly retryOptions: Options;\n\n constructor(private readonly httpClient: HttpClient) {\n this.retryOptions = {\n retries: 1,\n minTimeout: minRetryTimeout,\n maxTimeout: 3 * 1000,\n };\n }\n\n getDeploymentDetails = async (\n deploymentId: string\n ): Promise<DeploymentDetails> => {\n const deploymentStatus = await this.getDeploymentStatus(deploymentId);\n\n if (deploymentStatus === DeploymentPipelinesStatus.ERROR) {\n const deploymentTasksDescriptions =\n await this.getDeploymentTasksDescriptions(deploymentId);\n return {\n deploymentStatus: DeploymentPipelinesStatus.ERROR,\n deploymentTasksDescriptions,\n };\n }\n\n return { deploymentStatus: DeploymentPipelinesStatus.SUCCESS };\n };\n\n private getDeploymentStatus = async (deploymentId: string) => {\n try {\n return await pWaitFor(\n async () => {\n const { data } = await pRetry(\n () => this.httpClient.request(getDeployment({ deploymentId })),\n this.retryOptions\n );\n\n const result = getDeploymentSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const { deploymentPipelinesStatus: status } = result.data.deployment;\n\n // Continue polling\n if (status === DeploymentPipelinesStatus.IN_PROGRESS) {\n return false;\n }\n\n return pWaitFor.resolveWith(status);\n },\n {\n // Poll each 2 seconds\n interval: pollInterval ?? 2 * 1000,\n // Fail if 2 minutes passed\n timeout: 2 * 60 * 1000,\n }\n );\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentStatus(),\n cause: error,\n });\n }\n };\n\n private getDeploymentTasksDescriptions = async (deploymentId: string) => {\n try {\n const { data } = await pRetry(\n () =>\n this.httpClient.request(\n getDeploymentPipelineDescription({\n deploymentId,\n deploymentPipelinesIds: [VELO_PIPELINE_ID],\n })\n ),\n this.retryOptions\n );\n\n const result = getDeploymentPipelineDescriptionSchema.safeParse(data);\n\n if (!result.success) {\n throw new CliError({\n code: CliErrorCode.InvalidGetDeploymentPipelineDescriptionResponse(),\n cause: result.error,\n info: { data },\n });\n }\n\n const veloPipeline = result.data.pipelinesDescription.find(\n (item) => item.deploymentPipelineId === VELO_PIPELINE_ID\n );\n\n return veloPipeline?.tasksDescriptions ?? [];\n } catch (e) {\n throw new CliError({\n code: CliErrorCode.FailedToGetDeploymentPipelineDescription(),\n cause: e,\n });\n }\n };\n}\n","import { z } from 'zod';\nimport {\n TaskStatus,\n DeploymentPipelinesStatus,\n} from '@wix/ambassador-document-management-editor-deployments-v1-deployment/types';\n\nexport const getDeploymentSchema = z.object({\n deployment: z.object({\n deploymentPipelinesStatus: z.enum([\n DeploymentPipelinesStatus.IN_PROGRESS,\n DeploymentPipelinesStatus.SUCCESS,\n DeploymentPipelinesStatus.ERROR,\n ]),\n }),\n});\n\nconst taskDescriptionSchema = z.object({\n taskName: z.string(),\n status: z\n .string()\n .transform((value) =>\n value === TaskStatus.SUCCESS ? TaskStatus.SUCCESS : TaskStatus.ERROR\n ),\n description: z\n .string()\n .nullish()\n .transform((value, ctx) => {\n try {\n return value ? JSON.parse(value) : {};\n } catch {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: 'Invalid JSON',\n });\n }\n\n return value;\n })\n .pipe(z.record(z.string(), z.string())),\n});\n\nexport type TaskDescription = z.infer<typeof taskDescriptionSchema>;\n\nexport const getDeploymentPipelineDescriptionSchema = z.object({\n pipelinesDescription: z.array(\n z.object({\n deploymentPipelineId: z.string(),\n tasksDescriptions: z.array(taskDescriptionSchema),\n })\n ),\n});\n","import { useMemo } from 'react';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { DocumentManagementClient } from './document-management-client.js';\n\nexport function useDocumentManagementClient(): DocumentManagementClient {\n const httpClient = useHttpClient({ type: 'editor' });\n return useMemo(() => new DocumentManagementClient(httpClient), [httpClient]);\n}\n","import { useCallback } from 'react';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\nimport type { DeploymentInfo } from '@wix/velo-client';\nimport type { TaskDescription } from '@wix/document-management-client';\nimport {\n useDocumentManagementClient,\n DeploymentPipelinesStatus,\n} from '@wix/document-management-client';\nimport { useHttpClient } from '@wix/cli-http-client-react';\nimport { getTestOverrides } from '@wix/cli-test-overrides';\nimport { deployDocument } from '@wix/anyide-document-deployment';\nimport { useProjectModel } from '../../model.js';\nimport { createSiteFsManager } from '../../site-fs-manager.js';\nimport { useDeploySitePreview } from './useDeploySitePreview.js';\n\ntype CreatePreviewResult =\n | {\n deploymentStatus: DeploymentPipelinesStatus.SUCCESS;\n deploymentUrl: DeploymentInfo['deploymentUrl'];\n deploymentShortUrl?: DeploymentInfo['deploymentShortUrl'];\n }\n | {\n deploymentStatus: DeploymentPipelinesStatus.ERROR;\n deploymentTasksDescriptions: TaskDescription[];\n };\n\nconst { pollInterval } = getTestOverrides();\n\nexport function useCreatePreview() {\n const dmClient = useDocumentManagementClient();\n const { model } = useProjectModel();\n const httpClient = useHttpClient({ type: 'editor' });\n const deploySitePreview = useDeploySitePreview();\n\n return useCallback(async (): Promise<CreatePreviewResult> => {\n const siteFsManager = await createSiteFsManager(model.projectFolder);\n\n const [code, document] = await Promise.all([\n siteFsManager.getCode(),\n siteFsManager.getDocument(),\n ]);\n\n const { branchId, revision } = await deployDocument(document, {\n httpClient,\n pollInterval,\n }).catch((error: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToDeployDocument(),\n cause: error,\n });\n });\n\n const preview = await deploySitePreview({ branchId, revision, code });\n\n if (preview.isPublishPipelineDeployment) {\n const deploymentDetails = await dmClient.getDeploymentDetails(\n preview.deploymentId\n );\n\n if (\n deploymentDetails.deploymentStatus === DeploymentPipelinesStatus.ERROR\n ) {\n return deploymentDetails;\n }\n }\n\n return {\n ...preview,\n deploymentStatus: DeploymentPipelinesStatus.SUCCESS,\n };\n }, [model.projectFolder, httpClient, deploySitePreview, dmClient]);\n}\n","import { updateSite } from './apis/updateSite.js';\nimport { filterDocumentPagesByHashes } from './utils/filterDocumentPagesByHashes.js';\nimport { subscribeToUpdateSiteTaskStatus } from './status.js';\nimport { getBase } from './apis/getBase.js';\nexport const deployDocument = async (document, options) => {\n const { branchId, revision, hashes } = await getBase(options.httpClient);\n const { httpClient, onStatusChange, pollInterval, timeout } = options;\n const documentUpdate = filterDocumentPagesByHashes(hashes, document);\n if (Object.keys(documentUpdate.pages).length === 0) {\n return {\n branchId,\n revision\n };\n }\n const updateSiteTaskId = await updateSite(httpClient, documentUpdate, branchId, revision);\n return subscribeToUpdateSiteTaskStatus(httpClient, updateSiteTaskId, { onStatusChange, pollInterval, timeout });\n};\n","import { promisify } from 'node:util';\nimport { brotliCompress } from 'node:zlib';\nimport { updateSiteUrl } from './urls.js';\nconst brotliCompressAsync = promisify(brotliCompress);\nconst sendUpdateSiteRequest = async (httpClient, request) => {\n const { data } = await httpClient.post(updateSiteUrl(), request);\n return data;\n};\nexport const updateSite = async (httpClient, documentUpdate, branchId, revision) => {\n const stringifiedDocumentUpdate = JSON.stringify(documentUpdate);\n const compressedWmlSite = (await brotliCompressAsync(stringifiedDocumentUpdate)).toString('base64');\n const { updateSiteTaskId } = await sendUpdateSiteRequest(httpClient, {\n compressedWmlSite,\n branchId,\n revision\n });\n return updateSiteTaskId;\n};\n","const serverlessUrl = () => 'https://editor.wix.com/_serverless/dm-anyide-site-deployment';\nexport const getBaseUrl = () => `${serverlessUrl()}/getBase`;\nexport const updateSiteUrl = () => `${serverlessUrl()}/updateSite`;\nexport const getUpdateSiteStatusUrl = (updateSiteTaskId) => `${serverlessUrl()}/getUpdateSiteStatus/${updateSiteTaskId}`;\n","import { hashWml } from './hashWml.js';\nexport const filterDocumentPagesByHashes = (hashes, document) => {\n const filteredDocument = { pages: {} };\n for (const pageId in document.pages) {\n if (hashes[pageId] === undefined) {\n filteredDocument.pages[pageId] = document.pages[pageId];\n }\n }\n for (const pageId in hashes) {\n const documentPage = document.pages[pageId];\n if (documentPage) {\n const pageHash = hashWml(documentPage.data);\n if (pageHash !== hashes[pageId]) {\n filteredDocument.pages[pageId] = documentPage;\n }\n }\n else {\n filteredDocument.pages[pageId] = null;\n }\n }\n return filteredDocument;\n};\n","import crypto from 'node:crypto';\nconst md5 = (str) => crypto.createHash('md5').update(str).digest('hex');\nconst stringifyWmlFile = ({ content }) => content;\nexport const hashWml = ({ structure, style, data, version }) => {\n const wmlString = version + stringifyWmlFile(structure) + stringifyWmlFile(data) + stringifyWmlFile(style);\n return md5(wmlString);\n};\n","import { getTaskStatus } from './apis/getTaskStatus.js';\nexport const subscribeToUpdateSiteTaskStatus = (httpClient, updateSiteTaskId, options = {}) => {\n const { onStatusChange, pollInterval = 1000, timeout = 1000 * 60 * 5 } = options;\n return new Promise((resolve, reject) => {\n const cleanup = () => {\n clearInterval(intervalId);\n clearTimeout(timeoutId);\n };\n const timeoutId = setTimeout(() => {\n cleanup();\n reject(new Error('deployDocument timeout exceeded'));\n }, timeout);\n const intervalId = setInterval(async () => {\n try {\n const taskStatus = await getTaskStatus(httpClient, updateSiteTaskId);\n onStatusChange?.(taskStatus);\n if (taskStatus.state === 'FAILED') {\n cleanup();\n reject(new Error(`Action ${taskStatus.action} failed with error: ${taskStatus.extras?.error}`));\n }\n if (taskStatus.action === 'CREATE_REVISION' && taskStatus.state === 'DONE') {\n cleanup();\n resolve(taskStatus.extras);\n }\n }\n catch (error) {\n cleanup();\n reject(error);\n }\n }, pollInterval);\n });\n};\n","import { getUpdateSiteStatusUrl } from './urls.js';\nexport const getTaskStatus = async (httpClient, taskId) => {\n const { data } = await httpClient.get(getUpdateSiteStatusUrl(taskId));\n return data;\n};\n","import { getBaseUrl } from './urls.js';\nexport const getBase = async (httpClient) => {\n const { data } = await httpClient.get(getBaseUrl());\n return data;\n};\n","import { useCallback } from 'react';\nimport { useVeloClient, GridAppLayout } from '@wix/velo-client';\nimport type { VeloCode } from '@wix/anyide-cli-file-structure';\nimport { useProjectModel } from '../../model.js';\nimport { loadProjectRootFiles } from '../../velo.js';\n\ninterface Options {\n branchId: string;\n revision: number;\n code: VeloCode;\n}\n\nexport function useDeploySitePreview() {\n const { model } = useProjectModel();\n const { deploySitePreview } = useVeloClient();\n\n return useCallback(\n async ({ branchId, revision, code }: Options) => {\n const rootFiles = await loadProjectRootFiles(model.projectFolder);\n\n return deploySitePreview({\n branchId,\n revision: String(revision),\n content: {\n ...code,\n files: code.files.concat(rootFiles),\n layout: GridAppLayout[code.layout],\n },\n });\n },\n [deploySitePreview, model.projectFolder]\n );\n}\n","import { readPackageJsonContent } from '@wix/cli-fs';\nimport { WIX_LOCK_FILENAME } from '@wix/cli-core-definitions';\nimport { isWixLockExists, readWixLock } from './files/wix.lock.js';\n\nexport async function loadProjectRootFiles(projectFolder: string) {\n if (await isWixLockExists(projectFolder)) {\n const [packageJson, wixLock] = await Promise.all([\n readPackageJsonContent(projectFolder),\n readWixLock(projectFolder),\n ]);\n\n return [\n { path: 'package.json', content: packageJson },\n { path: WIX_LOCK_FILENAME, content: wixLock },\n ];\n }\n\n return [];\n}\n","import { getWixLockFilePath } from '@wix/cli-core-definitions';\nimport { pathExists, readFile } from '@wix/cli-fs';\n\nexport function isWixLockExists(projectFolder: string) {\n return pathExists(getWixLockFilePath(projectFolder));\n}\n\nexport function readWixLock(projectFolder: string) {\n return readFile(getWixLockFilePath(projectFolder), 'utf-8');\n}\n"],"mappings":"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","names":["import_react","import_react","pollInterval","pollInterval","import_react","pollInterval","React"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../cli-site/src/site-fs-manager.ts","../../../node_modules/@wix/anyide-cli-file-structure/dist/index.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/wixSiteFSManager.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/code/index.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/code/code.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/code/utils/veloUtils.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/code/utils/constants.js","../../../node_modules/@wix/anyide-cli-file-structure/node_modules/@wix/velo-github-layout-definitions/build/index.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/types.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/document/index.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/document/document.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/document/utils/wmlUtils.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/document/externalUpdates.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/page/utils.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/state/state.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/state/siteFileStructure.js","../../../node_modules/@wix/anyide-template-layout/dist/index.js","../../../node_modules/@wix/anyide-template-layout/dist/code.js","../../../node_modules/@wix/anyide-template-layout/dist/configs/index.js","../../../node_modules/@wix/anyide-template-layout/dist/configs/blocksConfig.js","../../../node_modules/@wix/anyide-template-layout/dist/configs/editorConfig.js","../../../node_modules/@wix/anyide-template-layout/dist/page.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/state/siteFileSystem.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/state/stateBuilder.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/state/sitePagesState.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/applyFsUpdates.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/code/fsUpdates.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/page/fsUpdates.js","../../../node_modules/@wix/anyide-cli-file-structure/dist/document/fsUpdates.js"],"sourcesContent":["import { relative } from 'node:path';\nimport { WixSiteFSManager } from '@wix/anyide-cli-file-structure';\nimport { getSourceFolder } from '@wix/velo-github-layout-definitions';\nimport type {\n FSUpdate,\n WixSiteExternalUpdate,\n} from '@wix/anyide-cli-file-structure';\nimport { CliError, CliErrorCode } from '@wix/cli-error';\n\nexport async function createSiteFsManager(projectFolder: string) {\n const srcFolder = getSourceFolder(projectFolder);\n const fsManager = await WixSiteFSManager.create(srcFolder, 'Editor').catch(\n (error: unknown) => {\n throw new CliError({\n code: CliErrorCode.FailedToInitializeSiteFsManager(),\n cause: error,\n });\n }\n );\n\n return {\n convertToOnlineLayout: fsManager.createConvertOnlineLayoutApi(\n relative(projectFolder, srcFolder)\n ),\n async getCode() {\n try {\n return await fsManager.getCode();\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSiteFsManagerCode(),\n cause: error,\n });\n }\n },\n async getDocument() {\n try {\n return await fsManager.getDocument();\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToGetSiteFsManagerDocument(),\n cause: error,\n });\n }\n },\n async applyFsUpdates(updates: FSUpdate[]) {\n try {\n return await fsManager.applyFsUpdates(updates);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToApplySiteFsManagerFsUpdates(),\n cause: error,\n });\n }\n },\n async applyExternalUpdates(update: WixSiteExternalUpdate) {\n try {\n await fsManager.applyExternalUpdates(update);\n } catch (error) {\n throw new CliError({\n code: CliErrorCode.FailedToApplySiteFsManagerExternalUpdates(),\n cause: error,\n });\n }\n },\n };\n}\n","export * from './wixSiteFSManager.js';\n","import { convertOnlineLayout, getSiteCode } from './code/index.js';\nimport { applyDocumentExternalUpdates, getSiteDocument } from './document/index.js';\nimport { buildState } from './state/state.js';\nimport { applyFsUpdates } from './applyFsUpdates.js';\nexport class WixSiteFSManager {\n state;\n constructor(state) {\n this.state = state;\n }\n static async create(rootFolderPath, fileStructureType) {\n const state = await buildState(rootFolderPath, fileStructureType);\n return new WixSiteFSManager(state);\n }\n getCode = async () => getSiteCode(this.state);\n getDocument = async () => getSiteDocument(this.state);\n applyFsUpdates = async (updates) => applyFsUpdates(this.state, updates);\n applyExternalUpdates = async ({ code, document }) => {\n if (code) {\n throw new Error('external code updates are not supported');\n }\n if (document) {\n await applyDocumentExternalUpdates(this.state, document);\n }\n };\n createConvertOnlineLayoutApi = (basePath) => (onlinePath) => convertOnlineLayout(this.state, basePath, onlinePath);\n}\n","export { getSiteCode, convertOnlineLayout } from './code.js';\n","import path from 'path';\nimport { convertToGithubLayout, getPageCodeFilePath } from './utils/veloUtils.js';\nimport { foldersType } from '../types.js';\nconst readAllFilesInDir = async (state, dir, folderType) => {\n const entries = await state.fileSystem.readFolder(dir);\n const filePromises = entries.map(async (entry) => {\n const entryPath = path.join(dir, entry.name);\n if (entry.isFile()) {\n return {\n path: convertToGithubLayout(state, entryPath, folderType),\n content: await state.fileSystem.readFile(entryPath)\n };\n }\n return readAllFilesInDir(state, entryPath, folderType);\n });\n return (await Promise.all(filePromises)).flat();\n};\nconst readBackendFiles = async (state) => readAllFilesInDir(state, state.fileStructure.getBackendFolderPath(), foldersType.backend);\nconst readPublicFiles = async (state) => readAllFilesInDir(state, state.fileStructure.getPublicFolderPath(), foldersType.public);\nconst readStylesFiles = async (state) => readAllFilesInDir(state, state.fileStructure.getStylesFolderPath(), foldersType.styles);\nconst readPageCodeFiles = async (state) => {\n const codeFiles = [];\n const pages = state.pages.getAll();\n for (const { pageId, pagePath } of pages) {\n const page = state.fileStructure.getPageFilesPaths(pagePath);\n const content = await state.fileSystem.readFile(page.code);\n codeFiles.push({ path: getPageCodeFilePath(pageId), content });\n }\n return codeFiles;\n};\nexport const getSiteCode = async (state) => {\n const allFiles = await Promise.all([\n readBackendFiles(state),\n readPublicFiles(state),\n readStylesFiles(state),\n readPageCodeFiles(state)\n ]);\n return {\n files: allFiles.flat(),\n layout: 'GITHUB',\n ignoreForbiddenPaths: true\n };\n};\nconst onlinePathRegex = /^(public\\/pages|public|backend|styles)\\/?((.+)\\.js|.*)$/;\n/**\n * This api takes an online path and splits it to 3 parts:\n * 1. The folder (public / backend / pages)\n * 2. The relative file path from this folder\n * 3. Page id (only when the folder is pages)\n */\nconst splitOnlinePath = (onlinePath) => {\n const [, folderPath, relativeFilePath, pageId] = onlinePathRegex.exec(onlinePath) ?? [];\n return {\n folderPath,\n relativeFilePath,\n pageId\n };\n};\nconst buildCodeFilePath = (folderPath, relativeFilePath) => {\n if (!relativeFilePath) {\n return folderPath;\n }\n return path.join(folderPath, relativeFilePath);\n};\nconst buildPageCodeFilePath = ({ pages, fileStructure }, pageId) => {\n if (!pageId) {\n throw new Error('Invalid page code file path');\n }\n const pageFolderPath = pages.getFolderPath(pageId);\n if (!pageFolderPath) {\n throw new Error('Page does not exist');\n }\n return fileStructure.getPageFilesPaths(pageFolderPath).code;\n};\nconst convertOnlineLayoutToRelativePath = (state, onlinePath) => {\n const { fileStructure } = state;\n const { folderPath, relativeFilePath, pageId } = splitOnlinePath(onlinePath);\n switch (folderPath) {\n case 'public':\n return buildCodeFilePath(fileStructure.getPublicFolderPath(), relativeFilePath);\n case 'backend':\n return buildCodeFilePath(fileStructure.getBackendFolderPath(), relativeFilePath);\n case 'styles':\n return buildCodeFilePath(fileStructure.getStylesFolderPath(), relativeFilePath);\n case 'public/pages':\n return buildPageCodeFilePath(state, pageId);\n default:\n throw new Error('Unknown online path');\n }\n};\nexport const convertOnlineLayout = (state, basePath, onlinePath) => path.join(basePath, convertOnlineLayoutToRelativePath(state, onlinePath));\n","import { PAGE_CODE_TEMPLATE } from './constants.js';\nimport { getBackendFolder, getPagesFolder, getPublicFolder, getStylesFolder } from '@wix/velo-github-layout-definitions';\nimport { foldersType } from '../../types.js';\nexport const createDefaultPageCodeFile = async (siteFileSystem, filePath) => siteFileSystem.writeFile(filePath, PAGE_CODE_TEMPLATE);\nexport const getPageCodeFilePath = (pageId) => `${getPagesFolder()}/${pageId}.js`;\nexport const convertToGithubLayout = (state, path, folderType) => {\n switch (folderType) {\n case foldersType.backend:\n return transformPath(path, state.fileStructure.getBackendFolderPath(), getBackendFolder());\n case foldersType.public:\n return transformPath(path, state.fileStructure.getPublicFolderPath(), getPublicFolder());\n case foldersType.styles:\n return transformPath(path, state.fileStructure.getStylesFolderPath(), getStylesFolder());\n }\n};\nconst transformPath = (path, basePath, folderPrefix) => {\n const relativePath = path.replace(`${basePath}/`, '');\n return `${folderPrefix}/${relativePath}`;\n};\n","export const PAGE_CODE_TEMPLATE = `// API Reference: https://www.wix.com/velo/reference/api-overview/introduction\n// “Hello, World!” Example: https://learn-code.wix.com/en/article/hello-world\n\n$w.onReady(function () {\n // Write your JavaScript here\n\n // To select an element by ID use: $w('#elementID')\n\n // Click 'Preview' to run your code\n});\n`;\n","// src/index.ts\nimport { join } from \"node:path\";\nfunction getGitIgnoredFolder(projectFolder = \"\") {\n return join(projectFolder, \".wix\");\n}\nfunction getTypesDir(projectFolder) {\n return join(getGitIgnoredFolder(projectFolder), \"types\");\n}\nfunction getPageTypesDir(projectFolder, pageId) {\n return join(getTypesDir(projectFolder), pageId);\n}\nfunction getPageConfigFilename(projectFolder, pageId) {\n return join(getPageTypesDir(projectFolder, pageId), `jsconfig.json`);\n}\nfunction getBackendConfigPath(projectFolder) {\n return join(getTypesDir(projectFolder), \"backend\", \"jsconfig.json\");\n}\nfunction getPublicConfigPath(projectFolder) {\n return join(getTypesDir(projectFolder), \"public\", \"jsconfig.json\");\n}\nfunction getSourceFolder(projectFolder) {\n return join(projectFolder, \"src\");\n}\nfunction getPagesFolder(projectFolder = \"\") {\n return join(getSourceFolder(projectFolder), \"pages\");\n}\nfunction getPublicFolder(projectFolder = \"\") {\n return join(getSourceFolder(projectFolder), \"public\");\n}\nfunction getBackendFolder(projectFolder = \"\") {\n return join(getSourceFolder(projectFolder), \"backend\");\n}\nfunction getStylesFolder(projectFolder = \"\") {\n return join(getSourceFolder(projectFolder), \"styles\");\n}\nvar SLASH = \"/\";\nvar ENCODED_SLASH = \"\\\\\\\\\";\nfunction encodeSlash(string) {\n return string.replaceAll(new RegExp(SLASH, \"g\"), ENCODED_SLASH);\n}\nfunction getPageCodeFilePath(projectFolder, page, shouldEscapeSlash = false) {\n const pageTitle = shouldEscapeSlash ? encodeSlash(page.pageTitle) : page.pageTitle;\n return join(\n getPagesFolder(projectFolder),\n `${[pageTitle, page.pageMetaData.pageId].filter(Boolean).join(\".\")}.js`\n );\n}\nexport {\n encodeSlash,\n getBackendConfigPath,\n getBackendFolder,\n getGitIgnoredFolder,\n getPageCodeFilePath,\n getPageConfigFilename,\n getPageTypesDir,\n getPagesFolder,\n getPublicConfigPath,\n getPublicFolder,\n getSourceFolder,\n getStylesFolder,\n getTypesDir\n};\n","export const foldersType = {\n backend: 'backend',\n public: 'public',\n styles: 'styles'\n};\n","export { getSiteDocument } from './document.js';\nexport { applyDocumentExternalUpdates } from './externalUpdates.js';\n","import { readWml } from './utils/wmlUtils.js';\nconst getDocumentPages = async (state) => {\n const documentPages = {};\n const pages = state.pages.getAll();\n for (const { pageId, pagePath } of pages) {\n const page = state.fileStructure.getPageFilesPaths(pagePath);\n const data = await readWml(state.fileSystem, page.document);\n documentPages[pageId] = { data };\n }\n return documentPages;\n};\nexport const getSiteDocument = async (state) => {\n const documentPages = await getDocumentPages(state);\n const { masterPage, ...otherPages } = documentPages;\n if (!masterPage) {\n throw new Error('Missing master page');\n }\n return {\n pages: {\n masterPage,\n ...otherPages\n }\n };\n};\n","const pageIdRegex = /<(?:Master)?Page\\s[^>]*?(?<=\\s)id=\"(.+?)\".*?>/;\nexport const getPageId = async (siteFileSystem, { structure }) => {\n const structureXmlContent = await siteFileSystem.readFile(structure);\n const [match, pageId] = structureXmlContent.match(pageIdRegex) ?? [];\n if (!match) {\n throw new Error('pageId not found in wml');\n }\n return pageId;\n};\nconst mapWmlFiles = async (documentStructure, callbackFn) => {\n const [structure, data, style] = await Promise.all([\n callbackFn(documentStructure.structure, 'structure'),\n callbackFn(documentStructure.data, 'data'),\n callbackFn(documentStructure.style, 'style')\n ]);\n return { structure, data, style };\n};\nconst writeWmlFiles = async (siteFileSystem, documentStructure, wml) => {\n const filesContent = convertWmlExportToFiles(wml);\n await mapWmlFiles(documentStructure, (filePath, fileName) => siteFileSystem.writeFile(filePath, filesContent[fileName]));\n};\nconst removeWmlFiles = async (siteFileSystem, documentStructure) => {\n await mapWmlFiles(documentStructure, (filePath) => siteFileSystem.removeFile(filePath));\n};\nexport const writeWml = async (siteFileSystem, documentStructure, pageData) => {\n if (pageData === null) {\n return removeWmlFiles(siteFileSystem, documentStructure);\n }\n return writeWmlFiles(siteFileSystem, documentStructure, pageData.data);\n};\nexport const readWml = async (siteFileSystem, documentStructure) => {\n const filesContent = await mapWmlFiles(documentStructure, async (filePath) => await siteFileSystem.readFile(filePath));\n return convertFilesToWmlExport(filesContent);\n};\nconst indentedStringify = (data) => JSON.stringify(data, undefined, 2);\nexport const convertWmlExportToFiles = (wmlExport) => {\n const dataWithoutVersion = JSON.parse(wmlExport.data.content);\n const dataWithVersion = indentedStringify({ ...dataWithoutVersion, version: wmlExport.version });\n return {\n structure: wmlExport.structure.content,\n style: wmlExport.style.content,\n data: dataWithVersion\n };\n};\nexport const convertFilesToWmlExport = (filesContent) => {\n const { version, ...dataWithoutVersion } = JSON.parse(filesContent.data);\n return {\n structure: { type: 'xml', content: filesContent.structure },\n data: { type: 'json', content: indentedStringify(dataWithoutVersion) },\n style: { type: 'css', content: filesContent.style },\n version\n };\n};\n","import { createPage, removePage, updatePage } from '../page/utils.js';\nconst applyPageUpdate = async (state, pageId, pageData) => {\n if (pageData === null) {\n return removePage(state, pageId);\n }\n const existingPageFolder = state.pages.getFolderPath(pageId);\n if (existingPageFolder) {\n return updatePage(state, pageId, existingPageFolder, pageData);\n }\n return createPage(state, pageId, pageData);\n};\nexport const applyDocumentExternalUpdates = async (state, { pages }) => {\n for (const [pageId, pageData] of Object.entries(pages)) {\n await applyPageUpdate(state, pageId, pageData);\n }\n};\n","import { writeWml } from '../document/utils/wmlUtils.js';\nimport path from 'path';\nimport { createDefaultPageCodeFile } from '../code/utils/veloUtils.js';\nconst generatePageFolderPathByInfo = (state, pageInfo) => {\n const pagePath = state.fileStructure.getPagesPathsForType(pageInfo.type);\n return path.join(...pagePath.map(entry => entry.type === 'Folder' ? entry.name : pageInfo[entry.variableName]));\n};\nconst escapeRegexSpecialChars = (str) => str.replace(/[.*+?^=!:${}()|[\\]/\\\\]/g, '\\\\$&');\nconst isPathFormatMatching = (fullPath, basePath) => new RegExp(`^${escapeRegexSpecialChars(basePath)}(?: \\\\((\\\\d*)\\\\))?$`).test(fullPath);\nconst generateNewPagePath = (state, pageInfo, existingPageFolderPath) => {\n let pageFolderPath = generatePageFolderPathByInfo(state, pageInfo);\n if (existingPageFolderPath && isPathFormatMatching(existingPageFolderPath, pageFolderPath)) {\n return existingPageFolderPath;\n }\n while (state.pages.getPageId(pageFolderPath)) {\n pageFolderPath = incrementPathSuffix(pageFolderPath);\n }\n return pageFolderPath;\n};\nconst createPageFiles = async (state, folderPath, pageData) => {\n const pageStructure = state.fileStructure.getPageFilesPaths(folderPath);\n await Promise.all([\n writeWml(state.fileSystem, pageStructure.document, pageData),\n createDefaultPageCodeFile(state.fileSystem, pageStructure.code)\n ]);\n};\nexport const createPage = async (state, pageId, pageData) => {\n const newPageFolder = generateNewPagePath(state, pageData.info);\n await state.fileSystem.createFolder(newPageFolder);\n await createPageFiles(state, newPageFolder, pageData);\n state.pages.addPage(pageId, newPageFolder);\n};\nexport const removePage = async (state, pageId) => {\n const folderPath = state.pages.getFolderPath(pageId);\n if (!folderPath)\n return;\n await state.fileSystem.removeFolder(folderPath);\n state.pages.removePageById(pageId);\n};\nexport const updatePage = async (state, pageId, existingPageFolderPath, pageData) => {\n const expectedFolderPath = generateNewPagePath(state, pageData.info, existingPageFolderPath);\n if (existingPageFolderPath !== expectedFolderPath) {\n await removePage(state, pageId);\n await createPage(state, pageId, pageData);\n return;\n }\n const pageStructure = state.fileStructure.getPageFilesPaths(existingPageFolderPath);\n await writeWml(state.fileSystem, pageStructure.document, pageData);\n};\nexport const incrementPathSuffix = (path) => {\n const [, origPath, suffix = 1] = path.match(/^(.*?)(?: \\((\\d+)\\))?$/) ?? [];\n return `${origPath} (${Number(suffix) + 1})`;\n};\n","import { SiteFileStructure } from './siteFileStructure.js';\nimport { SiteFileSystem } from './siteFileSystem.js';\nimport { buildPagesState } from './stateBuilder.js';\nexport const buildState = async (rootFolderPath, fileStructureType) => {\n const fileSystem = new SiteFileSystem(rootFolderPath);\n const fileStructure = new SiteFileStructure(fileStructureType);\n const pages = await buildPagesState(fileStructure, fileSystem);\n return {\n fileSystem,\n fileStructure,\n pages\n };\n};\n","import { getBackendPath, getPageFilesPaths, getPageFilesNames, getPagesPaths, getPublicPath, getStylesPath } from '@wix/anyide-template-layout';\nimport { foldersType } from '../types.js';\nexport class SiteFileStructure {\n fileStructureType;\n folderStructure;\n constructor(fileStructureType) {\n this.fileStructureType = fileStructureType;\n this.folderStructure = [\n { path: this.generateFolderPath(getBackendPath), type: foldersType.backend },\n { path: this.generateFolderPath(getPublicPath), type: foldersType.public },\n { path: this.generateFolderPath(getStylesPath), type: foldersType.styles }\n ];\n }\n generateFolderPath(getPathFunction) {\n return `${getPathFunction(this.fileStructureType)}/`;\n }\n getBackendFolderPath() {\n return getBackendPath(this.fileStructureType);\n }\n getPublicFolderPath() {\n return getPublicPath(this.fileStructureType);\n }\n getStylesFolderPath() {\n return getStylesPath(this.fileStructureType);\n }\n getPagesPaths() {\n return getPagesPaths(this.fileStructureType);\n }\n getPagesPathsForType(type) {\n const paths = this.getPagesPaths();\n const pathForType = paths[type];\n if (!pathForType) {\n throw new Error(`page type \"${type}\" is invalid for structureType \"${this.fileStructureType}\"`);\n }\n return pathForType;\n }\n getPageFilesPaths(pageFolderPath) {\n return getPageFilesPaths(this.fileStructureType, pageFolderPath);\n }\n matchPagePath(filePath) {\n const pageFilesPath = this.getPagesPaths();\n const sortedPageFilesPath = Object.entries(pageFilesPath).sort((a, b) => b[1].length - a[1].length);\n for (const [type, pagePath] of sortedPageFilesPath) {\n const typeRegex = new RegExp(`^(${pagePath.map(entry => (entry.type === 'Folder' ? entry.name : '.+?')).join('/')})/(.+)`);\n const path = typeRegex.exec(filePath);\n if (path) {\n return {\n type,\n pagePath: path[1],\n fileName: path[2]\n };\n }\n }\n return null;\n }\n createCodeStructureInfo(folderType) {\n return { type: 'code', isPageFile: false, folderType: folderType };\n }\n getCodeStructureInfoByFolderPath(filePath) {\n for (const folder of this.folderStructure) {\n if (filePath.startsWith(folder.path)) {\n return this.createCodeStructureInfo(folder.type);\n }\n }\n }\n getStructureInfoByFilePath(filePath) {\n const folderStructure = this.getCodeStructureInfoByFolderPath(filePath);\n if (folderStructure) {\n return folderStructure;\n }\n const pageMatch = this.matchPagePath(filePath);\n if (pageMatch) {\n const { pagePath, fileName } = pageMatch;\n const codeFiles = getPageFilesNames(this.fileStructureType, 'code');\n if (codeFiles.has(fileName)) {\n return { type: 'code', isPageFile: true, pagePath };\n }\n const documentFiles = getPageFilesNames(this.fileStructureType, 'document');\n if (documentFiles.has(fileName)) {\n return { type: 'document', isPageFile: true, pagePath };\n }\n }\n return null;\n }\n}\n","export * from './code.js';\nexport * from './page.js';\n","import { getConfig } from './configs/index.js';\nexport const getBackendPath = (structureType) => getConfig(structureType).backend;\nexport const getPublicPath = (structureType) => getConfig(structureType).public;\nexport const getStylesPath = (structureType) => getConfig(structureType).styles;\n","import { blocksConfig } from './blocksConfig.js';\nimport { editorConfig } from './editorConfig.js';\nconst configs = {\n Editor: editorConfig,\n Blocks: blocksConfig\n};\nexport const getConfig = (structureType) => {\n const config = configs[structureType];\n if (!config) {\n throw new Error('Unknown file structure type: ' + structureType);\n }\n return config;\n};\n","export const blocksConfig = {\n backend: 'backend',\n public: 'public',\n styles: 'styles',\n pages: {\n structure: {\n code: 'index.js',\n document: {\n structure: 'structure.xml',\n data: 'data.json',\n style: 'style.wcss'\n }\n },\n folders: {\n Widget: [\n { name: 'widgets', type: 'Folder' },\n { variableName: 'widgetName', type: 'DynamicFolder' }\n ],\n Panel: [\n { name: 'widgets', type: 'Folder' },\n { variableName: 'widgetName', type: 'DynamicFolder' },\n { name: 'panels', type: 'Folder' },\n { variableName: 'panelName', type: 'DynamicFolder' }\n ]\n }\n }\n};\n","export const editorConfig = {\n backend: 'backend',\n public: 'public',\n styles: 'styles',\n pages: {\n structure: {\n code: 'index.js',\n document: {\n structure: 'structure.xml',\n data: 'data.json',\n style: 'style.wcss'\n }\n },\n folders: {\n Page: [\n { name: 'pages', type: 'Folder' },\n { variableName: 'title', type: 'DynamicFolder' }\n ]\n }\n }\n};\n","import { getConfig } from './configs/index.js';\nimport path from 'path';\nexport const getPagesPaths = (structureType) => getConfig(structureType).pages.folders;\nexport const getPageFilesPaths = (structureType, folderPath) => {\n const { pages } = getConfig(structureType);\n const { structure } = pages;\n return {\n code: path.join(folderPath, structure.code),\n document: {\n structure: path.join(folderPath, structure.document.structure),\n style: path.join(folderPath, structure.document.style),\n data: path.join(folderPath, structure.document.data)\n }\n };\n};\nexport const getPageFilesNames = (structureType, pageStructureType) => {\n const { pages } = getConfig(structureType);\n const { structure } = pages;\n if (pageStructureType === 'document') {\n return new Set([\n structure[pageStructureType].structure,\n structure[pageStructureType].data,\n structure[pageStructureType].style\n ]);\n }\n return new Set([structure[pageStructureType]]);\n};\n","import fs from 'fs/promises';\nimport path from 'path';\nexport class SiteFileSystem {\n rootFolderPath;\n constructor(rootFolderPath) {\n this.rootFolderPath = rootFolderPath;\n }\n getFullPath(relativePath) {\n return path.join(this.rootFolderPath, relativePath);\n }\n async readFile(filePath) {\n return fs.readFile(this.getFullPath(filePath), 'utf-8');\n }\n async writeFile(filePath, content) {\n return fs.writeFile(this.getFullPath(filePath), content);\n }\n async removeFile(filePath) {\n return fs.rm(this.getFullPath(filePath));\n }\n async readFolder(folderPath) {\n return fs.readdir(this.getFullPath(folderPath), { withFileTypes: true });\n }\n async createFolder(folderPath) {\n await fs.mkdir(this.getFullPath(folderPath), { recursive: true });\n }\n async removeFolder(folderPath) {\n return fs.rm(this.getFullPath(folderPath), { recursive: true });\n }\n}\n","import { SitePagesState } from './sitePagesState.js';\nimport path from 'path';\nimport { getPageId } from '../document/utils/wmlUtils.js';\nconst getFoldersInPath = async (siteFileSystem, dirPath) => {\n const entries = await siteFileSystem.readFolder(dirPath);\n return entries.filter(entry => entry.isDirectory()).map(({ name }) => name);\n};\nconst getMatchingPaths = (folderName, paths) => paths.filter(([first]) => first?.type === 'DynamicFolder' || first.name === folderName);\nconst getPages = async (siteFileSystem, paths, rootPath = '') => {\n if (paths.length === 0)\n return [];\n const result = [];\n const rootFolders = await getFoldersInPath(siteFileSystem, rootPath);\n for (const folderName of rootFolders) {\n const matchingPaths = getMatchingPaths(folderName, paths);\n if (matchingPaths.length > 0) {\n const finalPaths = matchingPaths\n .filter(p => p.length === 1)\n .map(() => path.join(rootPath, folderName));\n const nonFinalPaths = matchingPaths.filter(p => p.length > 1).map(([, ...rest]) => rest);\n const nestedPages = await getPages(siteFileSystem, nonFinalPaths, path.join(rootPath, folderName));\n result.push(...finalPaths, ...nestedPages);\n }\n }\n return result;\n};\nconst getAllPageFolders = async (siteFileStructure, siteFileSystem) => {\n const paths = siteFileStructure.getPagesPaths();\n return await getPages(siteFileSystem, Object.values(paths));\n};\nexport const buildPagesState = async (siteFileStructure, siteFileSystem) => {\n const state = new SitePagesState();\n const pagesFolders = await getAllPageFolders(siteFileStructure, siteFileSystem);\n await Promise.all(pagesFolders.map(async (folderPath) => {\n const filePaths = siteFileStructure.getPageFilesPaths(folderPath);\n const pageId = await getPageId(siteFileSystem, filePaths.document);\n state.addPage(pageId, folderPath);\n }));\n return state;\n};\n","class CaseInsensitiveMap {\n map = new Map();\n normalizeKey(key) {\n return key.toLowerCase();\n }\n get(key) {\n return this.map.get(this.normalizeKey(key));\n }\n set(key, value) {\n this.map.set(this.normalizeKey(key), value);\n }\n delete(key) {\n this.map.delete(this.normalizeKey(key));\n }\n entries() {\n return this.map.entries();\n }\n}\nexport class SitePagesState {\n pageIdToFolderPath = new Map();\n folderPathToPageId = new CaseInsensitiveMap();\n validatePageIdExists(pageId) {\n if (this.pageIdToFolderPath.has(pageId)) {\n throw new Error(`Duplicated pageId found in structure.xml files: ${pageId}`);\n }\n }\n getAll() {\n const allPages = [];\n for (const [pageId, pagePath] of this.pageIdToFolderPath.entries()) {\n allPages.push({ pageId, pagePath });\n }\n return allPages;\n }\n addPage(pageId, folderPath) {\n this.validatePageIdExists(pageId);\n this.pageIdToFolderPath.set(pageId, folderPath);\n this.folderPathToPageId.set(folderPath, pageId);\n }\n removePageById(pageId) {\n const folderPath = this.pageIdToFolderPath.get(pageId);\n if (folderPath === undefined) {\n return;\n }\n this.pageIdToFolderPath.delete(pageId);\n this.folderPathToPageId.delete(folderPath);\n }\n removePageByPath(path) {\n const pageId = this.folderPathToPageId.get(path);\n if (pageId === undefined) {\n return;\n }\n this.pageIdToFolderPath.delete(pageId);\n this.folderPathToPageId.delete(path);\n }\n getFolderPath(pageId) {\n return this.pageIdToFolderPath.get(pageId);\n }\n getPageId(folderPath) {\n return this.folderPathToPageId.get(folderPath);\n }\n}\n","import { accumulateFsUpdateToVeloCodeUpdate } from './code/fsUpdates.js';\nimport { accumulatePageFsUpdateToWixSiteFSUpdate } from './page/fsUpdates.js';\nexport const applyFsUpdates = async (state, updates) => {\n const result = {};\n for (const { path, action } of updates) {\n const structureInfo = state.fileStructure.getStructureInfoByFilePath(path);\n if (structureInfo === null)\n continue;\n if (structureInfo.isPageFile) {\n const { document, code } = await accumulatePageFsUpdateToWixSiteFSUpdate(state, result, structureInfo, {\n path,\n action\n });\n result.code = code;\n result.document = document;\n }\n else if (structureInfo.type === 'code') {\n result.code = await accumulateFsUpdateToVeloCodeUpdate(state, result.code, structureInfo, { path, action });\n }\n }\n return result;\n};\n","import { convertToGithubLayout } from './utils/veloUtils.js';\nconst initVeloCodeUpdate = () => {\n return {\n layout: 'GITHUB',\n ignoreForbiddenPaths: true\n };\n};\nexport const applyDeleteCode = (codeUpdate, path) => {\n if (!codeUpdate) {\n codeUpdate = initVeloCodeUpdate();\n }\n codeUpdate.pathsToDelete ??= [];\n codeUpdate.pathsToDelete.push(path);\n return codeUpdate;\n};\nexport const applyUpdateCode = (codeUpdate, veloFile) => {\n if (!codeUpdate) {\n codeUpdate = initVeloCodeUpdate();\n }\n codeUpdate.filesToUpdate ??= [];\n codeUpdate.filesToUpdate.push(veloFile);\n return codeUpdate;\n};\nexport const accumulateFsUpdateToVeloCodeUpdate = async (state, veloCodeUpdate, structureInfo, { path, action }) => {\n let result = veloCodeUpdate;\n const pathInGithubLayout = convertToGithubLayout(state, path, structureInfo.folderType);\n if (action === 'DELETE') {\n result = applyDeleteCode(result, pathInGithubLayout);\n }\n else if (action === 'UPDATE') {\n result = applyUpdateCode(result, {\n path: pathInGithubLayout,\n content: await state.fileSystem.readFile(path)\n });\n }\n return result;\n};\n","import { getPageCodeFilePath } from '../code/utils/veloUtils.js';\nimport { readWml, getPageId } from '../document/utils/wmlUtils.js';\nimport { applyDeleteCode, applyUpdateCode } from '../code/fsUpdates.js';\nimport { applyDocumentUpdate } from '../document/fsUpdates.js';\nconst applyDeletePage = (siteFsUpdate, pageId) => {\n siteFsUpdate.document = applyDocumentUpdate(siteFsUpdate.document, pageId, null);\n const veloPath = getPageCodeFilePath(pageId);\n siteFsUpdate.code = applyDeleteCode(siteFsUpdate.code, veloPath);\n return siteFsUpdate;\n};\nconst applyCodeUpdateInPage = async (state, siteFsUpdate, pageId, path) => {\n siteFsUpdate.code = applyUpdateCode(siteFsUpdate.code, {\n path: getPageCodeFilePath(pageId),\n content: await state.fileSystem.readFile(path)\n });\n return siteFsUpdate;\n};\nexport const accumulatePageFsUpdateToWixSiteFSUpdate = async (state, siteFsUpdate, structureInfo, { action, path }) => {\n const result = siteFsUpdate;\n const pageId = state.pages.getPageId(structureInfo.pagePath);\n if (action === 'DELETE') {\n if (!pageId) {\n // page already removed\n return result;\n }\n const { document, code } = applyDeletePage(result, pageId);\n result.document = document;\n result.code = code;\n state.pages.removePageById(pageId);\n }\n else if (action === 'UPDATE') {\n const page = state.fileStructure.getPageFilesPaths(structureInfo.pagePath);\n if (structureInfo.type === 'document') {\n const wml = await readWml(state.fileSystem, page.document);\n const pageIdInDocument = await getPageId(state.fileSystem, page.document);\n const folderPathForPageIdInDocument = state.pages.getFolderPath(pageIdInDocument);\n // pageIdInDocument is reffering to existing page, which is not equal to the current one\n if (folderPathForPageIdInDocument && folderPathForPageIdInDocument !== structureInfo.pagePath) {\n throw new Error(`Duplicated pageId found in structure.xml files: ${pageIdInDocument}`);\n }\n // if pageId not equal, then we or add new page or change id in structure\n if (pageId !== pageIdInDocument) {\n if (pageId) {\n const { document, code } = applyDeletePage(result, pageId);\n result.document = document;\n result.code = code;\n await applyCodeUpdateInPage(state, result, pageIdInDocument, page.code);\n state.pages.removePageById(pageId);\n }\n state.pages.addPage(pageIdInDocument, structureInfo.pagePath);\n }\n result.document = applyDocumentUpdate(result.document, pageIdInDocument, { data: wml });\n }\n else if (structureInfo.type === 'code') {\n if (!pageId) {\n // no pageId for this code file, so just skip it\n return result;\n }\n await applyCodeUpdateInPage(state, result, pageId, path);\n }\n }\n return result;\n};\n","export const applyDocumentUpdate = (documentUpdate, pageId, value) => {\n documentUpdate ??= { pages: {} };\n documentUpdate.pages[pageId] = value;\n return documentUpdate;\n};\n"],"mappings":"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","names":["getSourceFolder","path","path","path","path","path","path","path","path","path","path","path","path"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../cli-logger/src/index.ts","../../cli-logger/src/create-logger.ts","../../../node_modules/ora/index.js","../../../node_modules/cli-cursor/index.js","../../../node_modules/restore-cursor/index.js","../../../node_modules/restore-cursor/node_modules/onetime/index.js","../../../node_modules/mimic-function/index.js","../../../node_modules/restore-cursor/node_modules/signal-exit/src/index.ts","../../../node_modules/restore-cursor/node_modules/signal-exit/src/signals.ts","../../../node_modules/log-symbols/index.js","../../../node_modules/ora/node_modules/string-width/index.js","../../../node_modules/get-east-asian-width/index.js","../../../node_modules/get-east-asian-width/lookup.js","../../../node_modules/emoji-regex/index.mjs","../../../node_modules/is-interactive/index.js","../../../node_modules/ora/node_modules/is-unicode-supported/index.js","../../../node_modules/stdin-discarder/index.js"],"sourcesContent":["export { createLogger } from './create-logger.js';\nexport type { Logger } from './create-logger.js';\n","import { stdout } from 'node:process';\nimport type { Options as OraOptions } from 'ora';\nimport ora from 'ora';\n\nexport function createLogger() {\n return {\n log: (message: string) => {\n // eslint-disable-next-line no-console\n console.log(message);\n },\n error: (message: string) => {\n // eslint-disable-next-line no-console\n console.error(message);\n },\n logWithLoader: (messageOrOptions?: string | OraOptions) => {\n const initialOptions: OraOptions =\n typeof messageOrOptions === 'string'\n ? { text: messageOrOptions }\n : (messageOrOptions ?? {});\n const options = {\n ...initialOptions,\n discardStdin: false,\n isEnabled: true,\n stream: stdout,\n };\n\n const loader = ora(options).start();\n\n return {\n update: (message: string) => {\n loader.text = message;\n },\n succeed: (message?: string) => {\n loader.succeed(message);\n },\n info: (message?: string) => {\n loader.info(message);\n },\n warn: (message?: string) => {\n loader.warn(message);\n },\n fail: (message?: string) => {\n loader.fail(message);\n },\n stop: () => {\n loader.stop();\n },\n };\n },\n };\n}\n\nexport type Logger = ReturnType<typeof createLogger>;\n","import process from 'node:process';\nimport chalk from 'chalk';\nimport cliCursor from 'cli-cursor';\nimport cliSpinners from 'cli-spinners';\nimport logSymbols from 'log-symbols';\nimport stripAnsi from 'strip-ansi';\nimport stringWidth from 'string-width';\nimport isInteractive from 'is-interactive';\nimport isUnicodeSupported from 'is-unicode-supported';\nimport stdinDiscarder from 'stdin-discarder';\n\nclass Ora {\n\t#linesToClear = 0;\n\t#isDiscardingStdin = false;\n\t#lineCount = 0;\n\t#frameIndex = -1;\n\t#lastSpinnerFrameTime = 0;\n\t#options;\n\t#spinner;\n\t#stream;\n\t#id;\n\t#initialInterval;\n\t#isEnabled;\n\t#isSilent;\n\t#indent;\n\t#text;\n\t#prefixText;\n\t#suffixText;\n\tcolor;\n\n\tconstructor(options) {\n\t\tif (typeof options === 'string') {\n\t\t\toptions = {\n\t\t\t\ttext: options,\n\t\t\t};\n\t\t}\n\n\t\tthis.#options = {\n\t\t\tcolor: 'cyan',\n\t\t\tstream: process.stderr,\n\t\t\tdiscardStdin: true,\n\t\t\thideCursor: true,\n\t\t\t...options,\n\t\t};\n\n\t\t// Public\n\t\tthis.color = this.#options.color;\n\n\t\t// It's important that these use the public setters.\n\t\tthis.spinner = this.#options.spinner;\n\n\t\tthis.#initialInterval = this.#options.interval;\n\t\tthis.#stream = this.#options.stream;\n\t\tthis.#isEnabled = typeof this.#options.isEnabled === 'boolean' ? this.#options.isEnabled : isInteractive({stream: this.#stream});\n\t\tthis.#isSilent = typeof this.#options.isSilent === 'boolean' ? this.#options.isSilent : false;\n\n\t\t// Set *after* `this.#stream`.\n\t\t// It's important that these use the public setters.\n\t\tthis.text = this.#options.text;\n\t\tthis.prefixText = this.#options.prefixText;\n\t\tthis.suffixText = this.#options.suffixText;\n\t\tthis.indent = this.#options.indent;\n\n\t\tif (process.env.NODE_ENV === 'test') {\n\t\t\tthis._stream = this.#stream;\n\t\t\tthis._isEnabled = this.#isEnabled;\n\n\t\t\tObject.defineProperty(this, '_linesToClear', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#linesToClear;\n\t\t\t\t},\n\t\t\t\tset(newValue) {\n\t\t\t\t\tthis.#linesToClear = newValue;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_frameIndex', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#frameIndex;\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tObject.defineProperty(this, '_lineCount', {\n\t\t\t\tget() {\n\t\t\t\t\treturn this.#lineCount;\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\tget indent() {\n\t\treturn this.#indent;\n\t}\n\n\tset indent(indent = 0) {\n\t\tif (!(indent >= 0 && Number.isInteger(indent))) {\n\t\t\tthrow new Error('The `indent` option must be an integer from 0 and up');\n\t\t}\n\n\t\tthis.#indent = indent;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget interval() {\n\t\treturn this.#initialInterval ?? this.#spinner.interval ?? 100;\n\t}\n\n\tget spinner() {\n\t\treturn this.#spinner;\n\t}\n\n\tset spinner(spinner) {\n\t\tthis.#frameIndex = -1;\n\t\tthis.#initialInterval = undefined;\n\n\t\tif (typeof spinner === 'object') {\n\t\t\tif (spinner.frames === undefined) {\n\t\t\t\tthrow new Error('The given spinner must have a `frames` property');\n\t\t\t}\n\n\t\t\tthis.#spinner = spinner;\n\t\t} else if (!isUnicodeSupported()) {\n\t\t\tthis.#spinner = cliSpinners.line;\n\t\t} else if (spinner === undefined) {\n\t\t\t// Set default spinner\n\t\t\tthis.#spinner = cliSpinners.dots;\n\t\t} else if (spinner !== 'default' && cliSpinners[spinner]) {\n\t\t\tthis.#spinner = cliSpinners[spinner];\n\t\t} else {\n\t\t\tthrow new Error(`There is no built-in spinner named '${spinner}'. See https://github.com/sindresorhus/cli-spinners/blob/main/spinners.json for a full list.`);\n\t\t}\n\t}\n\n\tget text() {\n\t\treturn this.#text;\n\t}\n\n\tset text(value = '') {\n\t\tthis.#text = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget prefixText() {\n\t\treturn this.#prefixText;\n\t}\n\n\tset prefixText(value = '') {\n\t\tthis.#prefixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget suffixText() {\n\t\treturn this.#suffixText;\n\t}\n\n\tset suffixText(value = '') {\n\t\tthis.#suffixText = value;\n\t\tthis.#updateLineCount();\n\t}\n\n\tget isSpinning() {\n\t\treturn this.#id !== undefined;\n\t}\n\n\t#getFullPrefixText(prefixText = this.#prefixText, postfix = ' ') {\n\t\tif (typeof prefixText === 'string' && prefixText !== '') {\n\t\t\treturn prefixText + postfix;\n\t\t}\n\n\t\tif (typeof prefixText === 'function') {\n\t\t\treturn prefixText() + postfix;\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#getFullSuffixText(suffixText = this.#suffixText, prefix = ' ') {\n\t\tif (typeof suffixText === 'string' && suffixText !== '') {\n\t\t\treturn prefix + suffixText;\n\t\t}\n\n\t\tif (typeof suffixText === 'function') {\n\t\t\treturn prefix + suffixText();\n\t\t}\n\n\t\treturn '';\n\t}\n\n\t#updateLineCount() {\n\t\tconst columns = this.#stream.columns ?? 80;\n\t\tconst fullPrefixText = this.#getFullPrefixText(this.#prefixText, '-');\n\t\tconst fullSuffixText = this.#getFullSuffixText(this.#suffixText, '-');\n\t\tconst fullText = ' '.repeat(this.#indent) + fullPrefixText + '--' + this.#text + '--' + fullSuffixText;\n\n\t\tthis.#lineCount = 0;\n\t\tfor (const line of stripAnsi(fullText).split('\\n')) {\n\t\t\tthis.#lineCount += Math.max(1, Math.ceil(stringWidth(line, {countAnsiEscapeCodes: true}) / columns));\n\t\t}\n\t}\n\n\tget isEnabled() {\n\t\treturn this.#isEnabled && !this.#isSilent;\n\t}\n\n\tset isEnabled(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isEnabled` option must be a boolean');\n\t\t}\n\n\t\tthis.#isEnabled = value;\n\t}\n\n\tget isSilent() {\n\t\treturn this.#isSilent;\n\t}\n\n\tset isSilent(value) {\n\t\tif (typeof value !== 'boolean') {\n\t\t\tthrow new TypeError('The `isSilent` option must be a boolean');\n\t\t}\n\n\t\tthis.#isSilent = value;\n\t}\n\n\tframe() {\n\t\t// Ensure we only update the spinner frame at the wanted interval,\n\t\t// even if the render method is called more often.\n\t\tconst now = Date.now();\n\t\tif (this.#frameIndex === -1 || now - this.#lastSpinnerFrameTime >= this.interval) {\n\t\t\tthis.#frameIndex = ++this.#frameIndex % this.#spinner.frames.length;\n\t\t\tthis.#lastSpinnerFrameTime = now;\n\t\t}\n\n\t\tconst {frames} = this.#spinner;\n\t\tlet frame = frames[this.#frameIndex];\n\n\t\tif (this.color) {\n\t\t\tframe = chalk[this.color](frame);\n\t\t}\n\n\t\tconst fullPrefixText = (typeof this.#prefixText === 'string' && this.#prefixText !== '') ? this.#prefixText + ' ' : '';\n\t\tconst fullText = typeof this.text === 'string' ? ' ' + this.text : '';\n\t\tconst fullSuffixText = (typeof this.#suffixText === 'string' && this.#suffixText !== '') ? ' ' + this.#suffixText : '';\n\n\t\treturn fullPrefixText + frame + fullText + fullSuffixText;\n\t}\n\n\tclear() {\n\t\tif (!this.#isEnabled || !this.#stream.isTTY) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.#stream.cursorTo(0);\n\n\t\tfor (let index = 0; index < this.#linesToClear; index++) {\n\t\t\tif (index > 0) {\n\t\t\t\tthis.#stream.moveCursor(0, -1);\n\t\t\t}\n\n\t\t\tthis.#stream.clearLine(1);\n\t\t}\n\n\t\tif (this.#indent || this.lastIndent !== this.#indent) {\n\t\t\tthis.#stream.cursorTo(this.#indent);\n\t\t}\n\n\t\tthis.lastIndent = this.#indent;\n\t\tthis.#linesToClear = 0;\n\n\t\treturn this;\n\t}\n\n\trender() {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tthis.clear();\n\t\tthis.#stream.write(this.frame());\n\t\tthis.#linesToClear = this.#lineCount;\n\n\t\treturn this;\n\t}\n\n\tstart(text) {\n\t\tif (text) {\n\t\t\tthis.text = text;\n\t\t}\n\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (!this.#isEnabled) {\n\t\t\tif (this.text) {\n\t\t\t\tthis.#stream.write(`- ${this.text}\\n`);\n\t\t\t}\n\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.isSpinning) {\n\t\t\treturn this;\n\t\t}\n\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.hide(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY) {\n\t\t\tthis.#isDiscardingStdin = true;\n\t\t\tstdinDiscarder.start();\n\t\t}\n\n\t\tthis.render();\n\t\tthis.#id = setInterval(this.render.bind(this), this.interval);\n\n\t\treturn this;\n\t}\n\n\tstop() {\n\t\tif (!this.#isEnabled) {\n\t\t\treturn this;\n\t\t}\n\n\t\tclearInterval(this.#id);\n\t\tthis.#id = undefined;\n\t\tthis.#frameIndex = 0;\n\t\tthis.clear();\n\t\tif (this.#options.hideCursor) {\n\t\t\tcliCursor.show(this.#stream);\n\t\t}\n\n\t\tif (this.#options.discardStdin && process.stdin.isTTY && this.#isDiscardingStdin) {\n\t\t\tstdinDiscarder.stop();\n\t\t\tthis.#isDiscardingStdin = false;\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tsucceed(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.success, text});\n\t}\n\n\tfail(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.error, text});\n\t}\n\n\twarn(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.warning, text});\n\t}\n\n\tinfo(text) {\n\t\treturn this.stopAndPersist({symbol: logSymbols.info, text});\n\t}\n\n\tstopAndPersist(options = {}) {\n\t\tif (this.#isSilent) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst prefixText = options.prefixText ?? this.#prefixText;\n\t\tconst fullPrefixText = this.#getFullPrefixText(prefixText, ' ');\n\n\t\tconst symbolText = options.symbol ?? ' ';\n\n\t\tconst text = options.text ?? this.text;\n\t\tconst separatorText = symbolText ? ' ' : '';\n\t\tconst fullText = (typeof text === 'string') ? separatorText + text : '';\n\n\t\tconst suffixText = options.suffixText ?? this.#suffixText;\n\t\tconst fullSuffixText = this.#getFullSuffixText(suffixText, ' ');\n\n\t\tconst textToWrite = fullPrefixText + symbolText + fullText + fullSuffixText + '\\n';\n\n\t\tthis.stop();\n\t\tthis.#stream.write(textToWrite);\n\n\t\treturn this;\n\t}\n}\n\nexport default function ora(options) {\n\treturn new Ora(options);\n}\n\nexport async function oraPromise(action, options) {\n\tconst actionIsFunction = typeof action === 'function';\n\tconst actionIsPromise = typeof action.then === 'function';\n\n\tif (!actionIsFunction && !actionIsPromise) {\n\t\tthrow new TypeError('Parameter `action` must be a Function or a Promise');\n\t}\n\n\tconst {successText, failText} = typeof options === 'object'\n\t\t? options\n\t\t: {successText: undefined, failText: undefined};\n\n\tconst spinner = ora(options).start();\n\n\ttry {\n\t\tconst promise = actionIsFunction ? action(spinner) : action;\n\t\tconst result = await promise;\n\n\t\tspinner.succeed(\n\t\t\tsuccessText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof successText === 'string' ? successText : successText(result)),\n\t\t);\n\n\t\treturn result;\n\t} catch (error) {\n\t\tspinner.fail(\n\t\t\tfailText === undefined\n\t\t\t\t? undefined\n\t\t\t\t: (typeof failText === 'string' ? failText : failText(error)),\n\t\t);\n\n\t\tthrow error;\n\t}\n}\n\nexport {default as spinners} from 'cli-spinners';\n","import process from 'node:process';\nimport restoreCursor from 'restore-cursor';\n\nlet isHidden = false;\n\nconst cliCursor = {};\n\ncliCursor.show = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\tisHidden = false;\n\twritableStream.write('\\u001B[?25h');\n};\n\ncliCursor.hide = (writableStream = process.stderr) => {\n\tif (!writableStream.isTTY) {\n\t\treturn;\n\t}\n\n\trestoreCursor();\n\tisHidden = true;\n\twritableStream.write('\\u001B[?25l');\n};\n\ncliCursor.toggle = (force, writableStream) => {\n\tif (force !== undefined) {\n\t\tisHidden = force;\n\t}\n\n\tif (isHidden) {\n\t\tcliCursor.show(writableStream);\n\t} else {\n\t\tcliCursor.hide(writableStream);\n\t}\n};\n\nexport default cliCursor;\n","import process from 'node:process';\nimport onetime from 'onetime';\nimport {onExit} from 'signal-exit';\n\nconst terminal = process.stderr.isTTY\n\t? process.stderr\n\t: (process.stdout.isTTY ? process.stdout : undefined);\n\nconst restoreCursor = terminal ? onetime(() => {\n\tonExit(() => {\n\t\tterminal.write('\\u001B[?25h');\n\t}, {alwaysLast: true});\n}) : () => {};\n\nexport default restoreCursor;\n","import mimicFunction from 'mimic-function';\n\nconst calledFunctions = new WeakMap();\n\nconst onetime = (function_, options = {}) => {\n\tif (typeof function_ !== 'function') {\n\t\tthrow new TypeError('Expected a function');\n\t}\n\n\tlet returnValue;\n\tlet callCount = 0;\n\tconst functionName = function_.displayName || function_.name || '<anonymous>';\n\n\tconst onetime = function (...arguments_) {\n\t\tcalledFunctions.set(onetime, ++callCount);\n\n\t\tif (callCount === 1) {\n\t\t\treturnValue = function_.apply(this, arguments_);\n\t\t\tfunction_ = undefined;\n\t\t} else if (options.throw === true) {\n\t\t\tthrow new Error(`Function \\`${functionName}\\` can only be called once`);\n\t\t}\n\n\t\treturn returnValue;\n\t};\n\n\tmimicFunction(onetime, function_);\n\tcalledFunctions.set(onetime, callCount);\n\n\treturn onetime;\n};\n\nonetime.callCount = function_ => {\n\tif (!calledFunctions.has(function_)) {\n\t\tthrow new Error(`The given function \\`${function_.name}\\` is not wrapped by the \\`onetime\\` package`);\n\t}\n\n\treturn calledFunctions.get(function_);\n};\n\nexport default onetime;\n","const copyProperty = (to, from, property, ignoreNonConfigurable) => {\n\t// `Function#length` should reflect the parameters of `to` not `from` since we keep its body.\n\t// `Function#prototype` is non-writable and non-configurable so can never be modified.\n\tif (property === 'length' || property === 'prototype') {\n\t\treturn;\n\t}\n\n\t// `Function#arguments` and `Function#caller` should not be copied. They were reported to be present in `Reflect.ownKeys` for some devices in React Native (#41), so we explicitly ignore them here.\n\tif (property === 'arguments' || property === 'caller') {\n\t\treturn;\n\t}\n\n\tconst toDescriptor = Object.getOwnPropertyDescriptor(to, property);\n\tconst fromDescriptor = Object.getOwnPropertyDescriptor(from, property);\n\n\tif (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {\n\t\treturn;\n\t}\n\n\tObject.defineProperty(to, property, fromDescriptor);\n};\n\n// `Object.defineProperty()` throws if the property exists, is not configurable and either:\n// - one its descriptors is changed\n// - it is non-writable and its value is changed\nconst canCopyProperty = function (toDescriptor, fromDescriptor) {\n\treturn toDescriptor === undefined || toDescriptor.configurable || (\n\t\ttoDescriptor.writable === fromDescriptor.writable\n\t\t&& toDescriptor.enumerable === fromDescriptor.enumerable\n\t\t&& toDescriptor.configurable === fromDescriptor.configurable\n\t\t&& (toDescriptor.writable || toDescriptor.value === fromDescriptor.value)\n\t);\n};\n\nconst changePrototype = (to, from) => {\n\tconst fromPrototype = Object.getPrototypeOf(from);\n\tif (fromPrototype === Object.getPrototypeOf(to)) {\n\t\treturn;\n\t}\n\n\tObject.setPrototypeOf(to, fromPrototype);\n};\n\nconst wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/\\n${fromBody}`;\n\nconst toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, 'toString');\nconst toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, 'name');\n\n// We call `from.toString()` early (not lazily) to ensure `from` can be garbage collected.\n// We use `bind()` instead of a closure for the same reason.\n// Calling `from.toString()` early also allows caching it in case `to.toString()` is called several times.\nconst changeToString = (to, from, name) => {\n\tconst withName = name === '' ? '' : `with ${name.trim()}() `;\n\tconst newToString = wrappedToString.bind(null, withName, from.toString());\n\t// Ensure `to.toString.toString` is non-enumerable and has the same `same`\n\tObject.defineProperty(newToString, 'name', toStringName);\n\tconst {writable, enumerable, configurable} = toStringDescriptor; // We destructue to avoid a potential `get` descriptor.\n\tObject.defineProperty(to, 'toString', {value: newToString, writable, enumerable, configurable});\n};\n\nexport default function mimicFunction(to, from, {ignoreNonConfigurable = false} = {}) {\n\tconst {name} = to;\n\n\tfor (const property of Reflect.ownKeys(from)) {\n\t\tcopyProperty(to, from, property, ignoreNonConfigurable);\n\t}\n\n\tchangePrototype(to, from);\n\tchangeToString(to, from, name);\n\n\treturn to;\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nimport { signals } from './signals.js'\nexport { signals }\n\n// just a loosened process type so we can do some evil things\ntype ProcessRE = NodeJS.Process & {\n reallyExit: (code?: number | undefined | null) => any\n emit: (ev: string, ...a: any[]) => any\n}\n\nconst processOk = (process: any): process is ProcessRE =>\n !!process &&\n typeof process === 'object' &&\n typeof process.removeListener === 'function' &&\n typeof process.emit === 'function' &&\n typeof process.reallyExit === 'function' &&\n typeof process.listeners === 'function' &&\n typeof process.kill === 'function' &&\n typeof process.pid === 'number' &&\n typeof process.on === 'function'\n\nconst kExitEmitter = Symbol.for('signal-exit emitter')\nconst global: typeof globalThis & { [kExitEmitter]?: Emitter } = globalThis\nconst ObjectDefineProperty = Object.defineProperty.bind(Object)\n\n/**\n * A function that takes an exit code and signal as arguments\n *\n * In the case of signal exits *only*, a return value of true\n * will indicate that the signal is being handled, and we should\n * not synthetically exit with the signal we received. Regardless\n * of the handler return value, the handler is unloaded when an\n * otherwise fatal signal is received, so you get exactly 1 shot\n * at it, unless you add another onExit handler at that point.\n *\n * In the case of numeric code exits, we may already have committed\n * to exiting the process, for example via a fatal exception or\n * unhandled promise rejection, so it is impossible to stop safely.\n */\nexport type Handler = (\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n) => true | void\ntype ExitEvent = 'afterExit' | 'exit'\ntype Emitted = { [k in ExitEvent]: boolean }\ntype Listeners = { [k in ExitEvent]: Handler[] }\n\n// teeny special purpose ee\nclass Emitter {\n emitted: Emitted = {\n afterExit: false,\n exit: false,\n }\n\n listeners: Listeners = {\n afterExit: [],\n exit: [],\n }\n\n count: number = 0\n id: number = Math.random()\n\n constructor() {\n if (global[kExitEmitter]) {\n return global[kExitEmitter]\n }\n ObjectDefineProperty(global, kExitEmitter, {\n value: this,\n writable: false,\n enumerable: false,\n configurable: false,\n })\n }\n\n on(ev: ExitEvent, fn: Handler) {\n this.listeners[ev].push(fn)\n }\n\n removeListener(ev: ExitEvent, fn: Handler) {\n const list = this.listeners[ev]\n const i = list.indexOf(fn)\n /* c8 ignore start */\n if (i === -1) {\n return\n }\n /* c8 ignore stop */\n if (i === 0 && list.length === 1) {\n list.length = 0\n } else {\n list.splice(i, 1)\n }\n }\n\n emit(\n ev: ExitEvent,\n code: number | null | undefined,\n signal: NodeJS.Signals | null\n ): boolean {\n if (this.emitted[ev]) {\n return false\n }\n this.emitted[ev] = true\n let ret: boolean = false\n for (const fn of this.listeners[ev]) {\n ret = fn(code, signal) === true || ret\n }\n if (ev === 'exit') {\n ret = this.emit('afterExit', code, signal) || ret\n }\n return ret\n }\n}\n\nabstract class SignalExitBase {\n abstract onExit(cb: Handler, opts?: { alwaysLast?: boolean }): () => void\n abstract load(): void\n abstract unload(): void\n}\n\nconst signalExitWrap = <T extends SignalExitBase>(handler: T) => {\n return {\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n return handler.onExit(cb, opts)\n },\n load() {\n return handler.load()\n },\n unload() {\n return handler.unload()\n },\n }\n}\n\nclass SignalExitFallback extends SignalExitBase {\n onExit() {\n return () => {}\n }\n load() {}\n unload() {}\n}\n\nclass SignalExit extends SignalExitBase {\n // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n // so use a supported signal instead\n /* c8 ignore start */\n #hupSig = process.platform === 'win32' ? 'SIGINT' : 'SIGHUP'\n /* c8 ignore stop */\n #emitter = new Emitter()\n #process: ProcessRE\n #originalProcessEmit: ProcessRE['emit']\n #originalProcessReallyExit: ProcessRE['reallyExit']\n\n #sigListeners: { [k in NodeJS.Signals]?: () => void } = {}\n #loaded: boolean = false\n\n constructor(process: ProcessRE) {\n super()\n this.#process = process\n // { <signal>: <listener fn>, ... }\n this.#sigListeners = {}\n for (const sig of signals) {\n this.#sigListeners[sig] = () => {\n // If there are no other listeners, an exit is coming!\n // Simplest way: remove us and then re-send the signal.\n // We know that this will kill the process, so we can\n // safely emit now.\n const listeners = this.#process.listeners(sig)\n let { count } = this.#emitter\n // This is a workaround for the fact that signal-exit v3 and signal\n // exit v4 are not aware of each other, and each will attempt to let\n // the other handle it, so neither of them do. To correct this, we\n // detect if we're the only handler *except* for previous versions\n // of signal-exit, and increment by the count of listeners it has\n // created.\n /* c8 ignore start */\n const p = process as unknown as {\n __signal_exit_emitter__?: { count: number }\n }\n if (\n typeof p.__signal_exit_emitter__ === 'object' &&\n typeof p.__signal_exit_emitter__.count === 'number'\n ) {\n count += p.__signal_exit_emitter__.count\n }\n /* c8 ignore stop */\n if (listeners.length === count) {\n this.unload()\n const ret = this.#emitter.emit('exit', null, sig)\n /* c8 ignore start */\n const s = sig === 'SIGHUP' ? this.#hupSig : sig\n if (!ret) process.kill(process.pid, s)\n /* c8 ignore stop */\n }\n }\n }\n\n this.#originalProcessReallyExit = process.reallyExit\n this.#originalProcessEmit = process.emit\n }\n\n onExit(cb: Handler, opts?: { alwaysLast?: boolean }) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return () => {}\n }\n /* c8 ignore stop */\n\n if (this.#loaded === false) {\n this.load()\n }\n\n const ev = opts?.alwaysLast ? 'afterExit' : 'exit'\n this.#emitter.on(ev, cb)\n return () => {\n this.#emitter.removeListener(ev, cb)\n if (\n this.#emitter.listeners['exit'].length === 0 &&\n this.#emitter.listeners['afterExit'].length === 0\n ) {\n this.unload()\n }\n }\n }\n\n load() {\n if (this.#loaded) {\n return\n }\n this.#loaded = true\n\n // This is the number of onSignalExit's that are in play.\n // It's important so that we can count the correct number of\n // listeners on signals, and don't wait for the other one to\n // handle it instead of us.\n this.#emitter.count += 1\n\n for (const sig of signals) {\n try {\n const fn = this.#sigListeners[sig]\n if (fn) this.#process.on(sig, fn)\n } catch (_) {}\n }\n\n this.#process.emit = (ev: string, ...a: any[]) => {\n return this.#processEmit(ev, ...a)\n }\n this.#process.reallyExit = (code?: number | null | undefined) => {\n return this.#processReallyExit(code)\n }\n }\n\n unload() {\n if (!this.#loaded) {\n return\n }\n this.#loaded = false\n\n signals.forEach(sig => {\n const listener = this.#sigListeners[sig]\n /* c8 ignore start */\n if (!listener) {\n throw new Error('Listener not defined for signal: ' + sig)\n }\n /* c8 ignore stop */\n try {\n this.#process.removeListener(sig, listener)\n /* c8 ignore start */\n } catch (_) {}\n /* c8 ignore stop */\n })\n this.#process.emit = this.#originalProcessEmit\n this.#process.reallyExit = this.#originalProcessReallyExit\n this.#emitter.count -= 1\n }\n\n #processReallyExit(code?: number | null | undefined) {\n /* c8 ignore start */\n if (!processOk(this.#process)) {\n return 0\n }\n this.#process.exitCode = code || 0\n /* c8 ignore stop */\n\n this.#emitter.emit('exit', this.#process.exitCode, null)\n return this.#originalProcessReallyExit.call(\n this.#process,\n this.#process.exitCode\n )\n }\n\n #processEmit(ev: string, ...args: any[]): any {\n const og = this.#originalProcessEmit\n if (ev === 'exit' && processOk(this.#process)) {\n if (typeof args[0] === 'number') {\n this.#process.exitCode = args[0]\n /* c8 ignore start */\n }\n /* c8 ignore start */\n const ret = og.call(this.#process, ev, ...args)\n /* c8 ignore start */\n this.#emitter.emit('exit', this.#process.exitCode, null)\n /* c8 ignore stop */\n return ret\n } else {\n return og.call(this.#process, ev, ...args)\n }\n }\n}\n\nconst process = globalThis.process\n// wrap so that we call the method on the actual handler, without\n// exporting it directly.\nexport const {\n /**\n * Called when the process is exiting, whether via signal, explicit\n * exit, or running out of stuff to do.\n *\n * If the global process object is not suitable for instrumentation,\n * then this will be a no-op.\n *\n * Returns a function that may be used to unload signal-exit.\n */\n onExit,\n\n /**\n * Load the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n load,\n\n /**\n * Unload the listeners. Likely you never need to call this, unless\n * doing a rather deep integration with signal-exit functionality.\n * Mostly exposed for the benefit of testing.\n *\n * @internal\n */\n unload,\n} = signalExitWrap(\n processOk(process) ? new SignalExit(process) : new SignalExitFallback()\n)\n","/**\n * This is not the set of all possible signals.\n *\n * It IS, however, the set of all signals that trigger\n * an exit on either Linux or BSD systems. Linux is a\n * superset of the signal names supported on BSD, and\n * the unknown signals just fail to register, so we can\n * catch that easily enough.\n *\n * Windows signals are a different set, since there are\n * signals that terminate Windows processes, but don't\n * terminate (or don't even exist) on Posix systems.\n *\n * Don't bother with SIGKILL. It's uncatchable, which\n * means that we can't fire any callbacks anyway.\n *\n * If a user does happen to register a handler on a non-\n * fatal signal like SIGWINCH or something, and then\n * exit, it'll end up firing `process.emit('exit')`, so\n * the handler will be fired anyway.\n *\n * SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n * artificially, inherently leave the process in a\n * state from which it is not safe to try and enter JS\n * listeners.\n */\nexport const signals: NodeJS.Signals[] = []\nsignals.push('SIGHUP', 'SIGINT', 'SIGTERM')\n\nif (process.platform !== 'win32') {\n signals.push(\n 'SIGALRM',\n 'SIGABRT',\n 'SIGVTALRM',\n 'SIGXCPU',\n 'SIGXFSZ',\n 'SIGUSR2',\n 'SIGTRAP',\n 'SIGSYS',\n 'SIGQUIT',\n 'SIGIOT'\n // should detect profiler and enable/disable accordingly.\n // see #21\n // 'SIGPROF'\n )\n}\n\nif (process.platform === 'linux') {\n signals.push('SIGIO', 'SIGPOLL', 'SIGPWR', 'SIGSTKFLT')\n}\n","import chalk from 'chalk';\nimport isUnicodeSupported from 'is-unicode-supported';\n\nconst main = {\n\tinfo: chalk.blue('ℹ'),\n\tsuccess: chalk.green('✔'),\n\twarning: chalk.yellow('⚠'),\n\terror: chalk.red('✖'),\n};\n\nconst fallback = {\n\tinfo: chalk.blue('i'),\n\tsuccess: chalk.green('√'),\n\twarning: chalk.yellow('‼'),\n\terror: chalk.red('×'),\n};\n\nconst logSymbols = isUnicodeSupported() ? main : fallback;\n\nexport default logSymbols;\n","import stripAnsi from 'strip-ansi';\nimport {eastAsianWidth} from 'get-east-asian-width';\nimport emojiRegex from 'emoji-regex';\n\nconst segmenter = new Intl.Segmenter();\n\nconst defaultIgnorableCodePointRegex = /^\\p{Default_Ignorable_Code_Point}$/u;\n\nexport default function stringWidth(string, options = {}) {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tconst {\n\t\tambiguousIsNarrow = true,\n\t\tcountAnsiEscapeCodes = false,\n\t} = options;\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tlet width = 0;\n\tconst eastAsianWidthOptions = {ambiguousAsWide: !ambiguousIsNarrow};\n\n\tfor (const {segment: character} of segmenter.segment(string)) {\n\t\tconst codePoint = character.codePointAt(0);\n\n\t\t// Ignore control characters\n\t\tif (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore zero-width characters\n\t\tif (\n\t\t\t(codePoint >= 0x20_0B && codePoint <= 0x20_0F) // Zero-width space, non-joiner, joiner, left-to-right mark, right-to-left mark\n\t\t\t|| codePoint === 0xFE_FF // Zero-width no-break space\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (\n\t\t\t(codePoint >= 0x3_00 && codePoint <= 0x3_6F) // Combining diacritical marks\n\t\t\t|| (codePoint >= 0x1A_B0 && codePoint <= 0x1A_FF) // Combining diacritical marks extended\n\t\t\t|| (codePoint >= 0x1D_C0 && codePoint <= 0x1D_FF) // Combining diacritical marks supplement\n\t\t\t|| (codePoint >= 0x20_D0 && codePoint <= 0x20_FF) // Combining diacritical marks for symbols\n\t\t\t|| (codePoint >= 0xFE_20 && codePoint <= 0xFE_2F) // Combining half marks\n\t\t) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore surrogate pairs\n\t\tif (codePoint >= 0xD8_00 && codePoint <= 0xDF_FF) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore variation selectors\n\t\tif (codePoint >= 0xFE_00 && codePoint <= 0xFE_0F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// This covers some of the above cases, but we still keep them for performance reasons.\n\t\tif (defaultIgnorableCodePointRegex.test(character)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// TODO: Use `/\\p{RGI_Emoji}/v` when targeting Node.js 20.\n\t\tif (emojiRegex().test(character)) {\n\t\t\twidth += 2;\n\t\t\tcontinue;\n\t\t}\n\n\t\twidth += eastAsianWidth(codePoint, eastAsianWidthOptions);\n\t}\n\n\treturn width;\n}\n","import {getCategory, isAmbiguous, isFullWidth, isWide} from './lookup.js';\n\nfunction validate(codePoint) {\n\tif (!Number.isSafeInteger(codePoint)) {\n\t\tthrow new TypeError(`Expected a code point, got \\`${typeof codePoint}\\`.`);\n\t}\n}\n\nexport function eastAsianWidthType(codePoint) {\n\tvalidate(codePoint);\n\n\treturn getCategory(codePoint);\n}\n\nexport function eastAsianWidth(codePoint, {ambiguousAsWide = false} = {}) {\n\tvalidate(codePoint);\n\n\tif (\n\t\tisFullWidth(codePoint)\n\t\t|| isWide(codePoint)\n\t\t|| (ambiguousAsWide && isAmbiguous(codePoint))\n\t) {\n\t\treturn 2;\n\t}\n\n\treturn 1;\n}\n\n// For Prettier. This doesn't count \"ambiguous\" characters or check for valid input.\n// https://github.com/sindresorhus/get-east-asian-width/pull/6\nexport const _isNarrowWidth = codePoint => !(isFullWidth(codePoint) || isWide(codePoint));\n","// Generated code.\n\nfunction isAmbiguous(x) {\n\treturn x === 0xA1\n\t\t|| x === 0xA4\n\t\t|| x === 0xA7\n\t\t|| x === 0xA8\n\t\t|| x === 0xAA\n\t\t|| x === 0xAD\n\t\t|| x === 0xAE\n\t\t|| x >= 0xB0 && x <= 0xB4\n\t\t|| x >= 0xB6 && x <= 0xBA\n\t\t|| x >= 0xBC && x <= 0xBF\n\t\t|| x === 0xC6\n\t\t|| x === 0xD0\n\t\t|| x === 0xD7\n\t\t|| x === 0xD8\n\t\t|| x >= 0xDE && x <= 0xE1\n\t\t|| x === 0xE6\n\t\t|| x >= 0xE8 && x <= 0xEA\n\t\t|| x === 0xEC\n\t\t|| x === 0xED\n\t\t|| x === 0xF0\n\t\t|| x === 0xF2\n\t\t|| x === 0xF3\n\t\t|| x >= 0xF7 && x <= 0xFA\n\t\t|| x === 0xFC\n\t\t|| x === 0xFE\n\t\t|| x === 0x101\n\t\t|| x === 0x111\n\t\t|| x === 0x113\n\t\t|| x === 0x11B\n\t\t|| x === 0x126\n\t\t|| x === 0x127\n\t\t|| x === 0x12B\n\t\t|| x >= 0x131 && x <= 0x133\n\t\t|| x === 0x138\n\t\t|| x >= 0x13F && x <= 0x142\n\t\t|| x === 0x144\n\t\t|| x >= 0x148 && x <= 0x14B\n\t\t|| x === 0x14D\n\t\t|| x === 0x152\n\t\t|| x === 0x153\n\t\t|| x === 0x166\n\t\t|| x === 0x167\n\t\t|| x === 0x16B\n\t\t|| x === 0x1CE\n\t\t|| x === 0x1D0\n\t\t|| x === 0x1D2\n\t\t|| x === 0x1D4\n\t\t|| x === 0x1D6\n\t\t|| x === 0x1D8\n\t\t|| x === 0x1DA\n\t\t|| x === 0x1DC\n\t\t|| x === 0x251\n\t\t|| x === 0x261\n\t\t|| x === 0x2C4\n\t\t|| x === 0x2C7\n\t\t|| x >= 0x2C9 && x <= 0x2CB\n\t\t|| x === 0x2CD\n\t\t|| x === 0x2D0\n\t\t|| x >= 0x2D8 && x <= 0x2DB\n\t\t|| x === 0x2DD\n\t\t|| x === 0x2DF\n\t\t|| x >= 0x300 && x <= 0x36F\n\t\t|| x >= 0x391 && x <= 0x3A1\n\t\t|| x >= 0x3A3 && x <= 0x3A9\n\t\t|| x >= 0x3B1 && x <= 0x3C1\n\t\t|| x >= 0x3C3 && x <= 0x3C9\n\t\t|| x === 0x401\n\t\t|| x >= 0x410 && x <= 0x44F\n\t\t|| x === 0x451\n\t\t|| x === 0x2010\n\t\t|| x >= 0x2013 && x <= 0x2016\n\t\t|| x === 0x2018\n\t\t|| x === 0x2019\n\t\t|| x === 0x201C\n\t\t|| x === 0x201D\n\t\t|| x >= 0x2020 && x <= 0x2022\n\t\t|| x >= 0x2024 && x <= 0x2027\n\t\t|| x === 0x2030\n\t\t|| x === 0x2032\n\t\t|| x === 0x2033\n\t\t|| x === 0x2035\n\t\t|| x === 0x203B\n\t\t|| x === 0x203E\n\t\t|| x === 0x2074\n\t\t|| x === 0x207F\n\t\t|| x >= 0x2081 && x <= 0x2084\n\t\t|| x === 0x20AC\n\t\t|| x === 0x2103\n\t\t|| x === 0x2105\n\t\t|| x === 0x2109\n\t\t|| x === 0x2113\n\t\t|| x === 0x2116\n\t\t|| x === 0x2121\n\t\t|| x === 0x2122\n\t\t|| x === 0x2126\n\t\t|| x === 0x212B\n\t\t|| x === 0x2153\n\t\t|| x === 0x2154\n\t\t|| x >= 0x215B && x <= 0x215E\n\t\t|| x >= 0x2160 && x <= 0x216B\n\t\t|| x >= 0x2170 && x <= 0x2179\n\t\t|| x === 0x2189\n\t\t|| x >= 0x2190 && x <= 0x2199\n\t\t|| x === 0x21B8\n\t\t|| x === 0x21B9\n\t\t|| x === 0x21D2\n\t\t|| x === 0x21D4\n\t\t|| x === 0x21E7\n\t\t|| x === 0x2200\n\t\t|| x === 0x2202\n\t\t|| x === 0x2203\n\t\t|| x === 0x2207\n\t\t|| x === 0x2208\n\t\t|| x === 0x220B\n\t\t|| x === 0x220F\n\t\t|| x === 0x2211\n\t\t|| x === 0x2215\n\t\t|| x === 0x221A\n\t\t|| x >= 0x221D && x <= 0x2220\n\t\t|| x === 0x2223\n\t\t|| x === 0x2225\n\t\t|| x >= 0x2227 && x <= 0x222C\n\t\t|| x === 0x222E\n\t\t|| x >= 0x2234 && x <= 0x2237\n\t\t|| x === 0x223C\n\t\t|| x === 0x223D\n\t\t|| x === 0x2248\n\t\t|| x === 0x224C\n\t\t|| x === 0x2252\n\t\t|| x === 0x2260\n\t\t|| x === 0x2261\n\t\t|| x >= 0x2264 && x <= 0x2267\n\t\t|| x === 0x226A\n\t\t|| x === 0x226B\n\t\t|| x === 0x226E\n\t\t|| x === 0x226F\n\t\t|| x === 0x2282\n\t\t|| x === 0x2283\n\t\t|| x === 0x2286\n\t\t|| x === 0x2287\n\t\t|| x === 0x2295\n\t\t|| x === 0x2299\n\t\t|| x === 0x22A5\n\t\t|| x === 0x22BF\n\t\t|| x === 0x2312\n\t\t|| x >= 0x2460 && x <= 0x24E9\n\t\t|| x >= 0x24EB && x <= 0x254B\n\t\t|| x >= 0x2550 && x <= 0x2573\n\t\t|| x >= 0x2580 && x <= 0x258F\n\t\t|| x >= 0x2592 && x <= 0x2595\n\t\t|| x === 0x25A0\n\t\t|| x === 0x25A1\n\t\t|| x >= 0x25A3 && x <= 0x25A9\n\t\t|| x === 0x25B2\n\t\t|| x === 0x25B3\n\t\t|| x === 0x25B6\n\t\t|| x === 0x25B7\n\t\t|| x === 0x25BC\n\t\t|| x === 0x25BD\n\t\t|| x === 0x25C0\n\t\t|| x === 0x25C1\n\t\t|| x >= 0x25C6 && x <= 0x25C8\n\t\t|| x === 0x25CB\n\t\t|| x >= 0x25CE && x <= 0x25D1\n\t\t|| x >= 0x25E2 && x <= 0x25E5\n\t\t|| x === 0x25EF\n\t\t|| x === 0x2605\n\t\t|| x === 0x2606\n\t\t|| x === 0x2609\n\t\t|| x === 0x260E\n\t\t|| x === 0x260F\n\t\t|| x === 0x261C\n\t\t|| x === 0x261E\n\t\t|| x === 0x2640\n\t\t|| x === 0x2642\n\t\t|| x === 0x2660\n\t\t|| x === 0x2661\n\t\t|| x >= 0x2663 && x <= 0x2665\n\t\t|| x >= 0x2667 && x <= 0x266A\n\t\t|| x === 0x266C\n\t\t|| x === 0x266D\n\t\t|| x === 0x266F\n\t\t|| x === 0x269E\n\t\t|| x === 0x269F\n\t\t|| x === 0x26BF\n\t\t|| x >= 0x26C6 && x <= 0x26CD\n\t\t|| x >= 0x26CF && x <= 0x26D3\n\t\t|| x >= 0x26D5 && x <= 0x26E1\n\t\t|| x === 0x26E3\n\t\t|| x === 0x26E8\n\t\t|| x === 0x26E9\n\t\t|| x >= 0x26EB && x <= 0x26F1\n\t\t|| x === 0x26F4\n\t\t|| x >= 0x26F6 && x <= 0x26F9\n\t\t|| x === 0x26FB\n\t\t|| x === 0x26FC\n\t\t|| x === 0x26FE\n\t\t|| x === 0x26FF\n\t\t|| x === 0x273D\n\t\t|| x >= 0x2776 && x <= 0x277F\n\t\t|| x >= 0x2B56 && x <= 0x2B59\n\t\t|| x >= 0x3248 && x <= 0x324F\n\t\t|| x >= 0xE000 && x <= 0xF8FF\n\t\t|| x >= 0xFE00 && x <= 0xFE0F\n\t\t|| x === 0xFFFD\n\t\t|| x >= 0x1F100 && x <= 0x1F10A\n\t\t|| x >= 0x1F110 && x <= 0x1F12D\n\t\t|| x >= 0x1F130 && x <= 0x1F169\n\t\t|| x >= 0x1F170 && x <= 0x1F18D\n\t\t|| x === 0x1F18F\n\t\t|| x === 0x1F190\n\t\t|| x >= 0x1F19B && x <= 0x1F1AC\n\t\t|| x >= 0xE0100 && x <= 0xE01EF\n\t\t|| x >= 0xF0000 && x <= 0xFFFFD\n\t\t|| x >= 0x100000 && x <= 0x10FFFD;\n}\n\nfunction isFullWidth(x) {\n\treturn x === 0x3000\n\t\t|| x >= 0xFF01 && x <= 0xFF60\n\t\t|| x >= 0xFFE0 && x <= 0xFFE6;\n}\n\nfunction isWide(x) {\n\treturn x >= 0x1100 && x <= 0x115F\n\t\t|| x === 0x231A\n\t\t|| x === 0x231B\n\t\t|| x === 0x2329\n\t\t|| x === 0x232A\n\t\t|| x >= 0x23E9 && x <= 0x23EC\n\t\t|| x === 0x23F0\n\t\t|| x === 0x23F3\n\t\t|| x === 0x25FD\n\t\t|| x === 0x25FE\n\t\t|| x === 0x2614\n\t\t|| x === 0x2615\n\t\t|| x >= 0x2648 && x <= 0x2653\n\t\t|| x === 0x267F\n\t\t|| x === 0x2693\n\t\t|| x === 0x26A1\n\t\t|| x === 0x26AA\n\t\t|| x === 0x26AB\n\t\t|| x === 0x26BD\n\t\t|| x === 0x26BE\n\t\t|| x === 0x26C4\n\t\t|| x === 0x26C5\n\t\t|| x === 0x26CE\n\t\t|| x === 0x26D4\n\t\t|| x === 0x26EA\n\t\t|| x === 0x26F2\n\t\t|| x === 0x26F3\n\t\t|| x === 0x26F5\n\t\t|| x === 0x26FA\n\t\t|| x === 0x26FD\n\t\t|| x === 0x2705\n\t\t|| x === 0x270A\n\t\t|| x === 0x270B\n\t\t|| x === 0x2728\n\t\t|| x === 0x274C\n\t\t|| x === 0x274E\n\t\t|| x >= 0x2753 && x <= 0x2755\n\t\t|| x === 0x2757\n\t\t|| x >= 0x2795 && x <= 0x2797\n\t\t|| x === 0x27B0\n\t\t|| x === 0x27BF\n\t\t|| x === 0x2B1B\n\t\t|| x === 0x2B1C\n\t\t|| x === 0x2B50\n\t\t|| x === 0x2B55\n\t\t|| x >= 0x2E80 && x <= 0x2E99\n\t\t|| x >= 0x2E9B && x <= 0x2EF3\n\t\t|| x >= 0x2F00 && x <= 0x2FD5\n\t\t|| x >= 0x2FF0 && x <= 0x2FFF\n\t\t|| x >= 0x3001 && x <= 0x303E\n\t\t|| x >= 0x3041 && x <= 0x3096\n\t\t|| x >= 0x3099 && x <= 0x30FF\n\t\t|| x >= 0x3105 && x <= 0x312F\n\t\t|| x >= 0x3131 && x <= 0x318E\n\t\t|| x >= 0x3190 && x <= 0x31E3\n\t\t|| x >= 0x31EF && x <= 0x321E\n\t\t|| x >= 0x3220 && x <= 0x3247\n\t\t|| x >= 0x3250 && x <= 0x4DBF\n\t\t|| x >= 0x4E00 && x <= 0xA48C\n\t\t|| x >= 0xA490 && x <= 0xA4C6\n\t\t|| x >= 0xA960 && x <= 0xA97C\n\t\t|| x >= 0xAC00 && x <= 0xD7A3\n\t\t|| x >= 0xF900 && x <= 0xFAFF\n\t\t|| x >= 0xFE10 && x <= 0xFE19\n\t\t|| x >= 0xFE30 && x <= 0xFE52\n\t\t|| x >= 0xFE54 && x <= 0xFE66\n\t\t|| x >= 0xFE68 && x <= 0xFE6B\n\t\t|| x >= 0x16FE0 && x <= 0x16FE4\n\t\t|| x === 0x16FF0\n\t\t|| x === 0x16FF1\n\t\t|| x >= 0x17000 && x <= 0x187F7\n\t\t|| x >= 0x18800 && x <= 0x18CD5\n\t\t|| x >= 0x18D00 && x <= 0x18D08\n\t\t|| x >= 0x1AFF0 && x <= 0x1AFF3\n\t\t|| x >= 0x1AFF5 && x <= 0x1AFFB\n\t\t|| x === 0x1AFFD\n\t\t|| x === 0x1AFFE\n\t\t|| x >= 0x1B000 && x <= 0x1B122\n\t\t|| x === 0x1B132\n\t\t|| x >= 0x1B150 && x <= 0x1B152\n\t\t|| x === 0x1B155\n\t\t|| x >= 0x1B164 && x <= 0x1B167\n\t\t|| x >= 0x1B170 && x <= 0x1B2FB\n\t\t|| x === 0x1F004\n\t\t|| x === 0x1F0CF\n\t\t|| x === 0x1F18E\n\t\t|| x >= 0x1F191 && x <= 0x1F19A\n\t\t|| x >= 0x1F200 && x <= 0x1F202\n\t\t|| x >= 0x1F210 && x <= 0x1F23B\n\t\t|| x >= 0x1F240 && x <= 0x1F248\n\t\t|| x === 0x1F250\n\t\t|| x === 0x1F251\n\t\t|| x >= 0x1F260 && x <= 0x1F265\n\t\t|| x >= 0x1F300 && x <= 0x1F320\n\t\t|| x >= 0x1F32D && x <= 0x1F335\n\t\t|| x >= 0x1F337 && x <= 0x1F37C\n\t\t|| x >= 0x1F37E && x <= 0x1F393\n\t\t|| x >= 0x1F3A0 && x <= 0x1F3CA\n\t\t|| x >= 0x1F3CF && x <= 0x1F3D3\n\t\t|| x >= 0x1F3E0 && x <= 0x1F3F0\n\t\t|| x === 0x1F3F4\n\t\t|| x >= 0x1F3F8 && x <= 0x1F43E\n\t\t|| x === 0x1F440\n\t\t|| x >= 0x1F442 && x <= 0x1F4FC\n\t\t|| x >= 0x1F4FF && x <= 0x1F53D\n\t\t|| x >= 0x1F54B && x <= 0x1F54E\n\t\t|| x >= 0x1F550 && x <= 0x1F567\n\t\t|| x === 0x1F57A\n\t\t|| x === 0x1F595\n\t\t|| x === 0x1F596\n\t\t|| x === 0x1F5A4\n\t\t|| x >= 0x1F5FB && x <= 0x1F64F\n\t\t|| x >= 0x1F680 && x <= 0x1F6C5\n\t\t|| x === 0x1F6CC\n\t\t|| x >= 0x1F6D0 && x <= 0x1F6D2\n\t\t|| x >= 0x1F6D5 && x <= 0x1F6D7\n\t\t|| x >= 0x1F6DC && x <= 0x1F6DF\n\t\t|| x === 0x1F6EB\n\t\t|| x === 0x1F6EC\n\t\t|| x >= 0x1F6F4 && x <= 0x1F6FC\n\t\t|| x >= 0x1F7E0 && x <= 0x1F7EB\n\t\t|| x === 0x1F7F0\n\t\t|| x >= 0x1F90C && x <= 0x1F93A\n\t\t|| x >= 0x1F93C && x <= 0x1F945\n\t\t|| x >= 0x1F947 && x <= 0x1F9FF\n\t\t|| x >= 0x1FA70 && x <= 0x1FA7C\n\t\t|| x >= 0x1FA80 && x <= 0x1FA88\n\t\t|| x >= 0x1FA90 && x <= 0x1FABD\n\t\t|| x >= 0x1FABF && x <= 0x1FAC5\n\t\t|| x >= 0x1FACE && x <= 0x1FADB\n\t\t|| x >= 0x1FAE0 && x <= 0x1FAE8\n\t\t|| x >= 0x1FAF0 && x <= 0x1FAF8\n\t\t|| x >= 0x20000 && x <= 0x2FFFD\n\t\t|| x >= 0x30000 && x <= 0x3FFFD;\n}\n\nfunction getCategory(x) {\n\tif (isAmbiguous(x)) return 'ambiguous';\n\n\tif (isFullWidth(x)) return 'fullwidth';\n\n\tif (\n\t\tx === 0x20A9\n\t\t|| x >= 0xFF61 && x <= 0xFFBE\n\t\t|| x >= 0xFFC2 && x <= 0xFFC7\n\t\t|| x >= 0xFFCA && x <= 0xFFCF\n\t\t|| x >= 0xFFD2 && x <= 0xFFD7\n\t\t|| x >= 0xFFDA && x <= 0xFFDC\n\t\t|| x >= 0xFFE8 && x <= 0xFFEE\n\t) {\n\t\treturn 'halfwidth';\n\t}\n\n\tif (\n\t\tx >= 0x20 && x <= 0x7E\n\t\t|| x === 0xA2\n\t\t|| x === 0xA3\n\t\t|| x === 0xA5\n\t\t|| x === 0xA6\n\t\t|| x === 0xAC\n\t\t|| x === 0xAF\n\t\t|| x >= 0x27E6 && x <= 0x27ED\n\t\t|| x === 0x2985\n\t\t|| x === 0x2986\n\t) {\n\t\treturn 'narrow';\n\t}\n\n\tif (isWide(x)) return 'wide';\n\n\treturn 'neutral';\n}\n\nexport {isAmbiguous, isFullWidth, isWide, getCategory};\n","export default () => {\n\t// https://mths.be/emoji\n\treturn /[#*0-9]\\uFE0F?\\u20E3|[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23ED-\\u23EF\\u23F1\\u23F2\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB\\u25FC\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692\\u2694-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A7\\u26AA\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C8\\u26CF\\u26D1\\u26E9\\u26F0-\\u26F5\\u26F7\\u26F8\\u26FA\\u2702\\u2708\\u2709\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2733\\u2734\\u2744\\u2747\\u2757\\u2763\\u27A1\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B55\\u3030\\u303D\\u3297\\u3299]\\uFE0F?|[\\u261D\\u270C\\u270D](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\u270A\\u270B](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u2693\\u26A1\\u26AB\\u26C5\\u26CE\\u26D4\\u26EA\\u26FD\\u2705\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2795-\\u2797\\u27B0\\u27BF\\u2B50]|\\u26D3\\uFE0F?(?:\\u200D\\uD83D\\uDCA5)?|\\u26F9(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\u2764\\uFE0F?(?:\\u200D(?:\\uD83D\\uDD25|\\uD83E\\uDE79))?|\\uD83C(?:[\\uDC04\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDE02\\uDE37\\uDF21\\uDF24-\\uDF2C\\uDF36\\uDF7D\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E\\uDF9F\\uDFCD\\uDFCE\\uDFD4-\\uDFDF\\uDFF5\\uDFF7]\\uFE0F?|[\\uDF85\\uDFC2\\uDFC7](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDFC4\\uDFCA](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDFCB\\uDFCC](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF43\\uDF45-\\uDF4A\\uDF4C-\\uDF7C\\uDF7E-\\uDF84\\uDF86-\\uDF93\\uDFA0-\\uDFC1\\uDFC5\\uDFC6\\uDFC8\\uDFC9\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF8-\\uDFFF]|\\uDDE6\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF]|\\uDDE7\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF]|\\uDDE8\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF]|\\uDDE9\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF]|\\uDDEA\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA]|\\uDDEB\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7]|\\uDDEC\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE]|\\uDDED\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA]|\\uDDEE\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9]|\\uDDEF\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5]|\\uDDF0\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF]|\\uDDF1\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE]|\\uDDF2\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF]|\\uDDF3\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF]|\\uDDF4\\uD83C\\uDDF2|\\uDDF5\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE]|\\uDDF6\\uD83C\\uDDE6|\\uDDF7\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC]|\\uDDF8\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF]|\\uDDF9\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF]|\\uDDFA\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF]|\\uDDFB\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA]|\\uDDFC\\uD83C[\\uDDEB\\uDDF8]|\\uDDFD\\uD83C\\uDDF0|\\uDDFE\\uD83C[\\uDDEA\\uDDF9]|\\uDDFF\\uD83C[\\uDDE6\\uDDF2\\uDDFC]|\\uDF44(?:\\u200D\\uD83D\\uDFEB)?|\\uDF4B(?:\\u200D\\uD83D\\uDFE9)?|\\uDFC3(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDFF3\\uFE0F?(?:\\u200D(?:\\u26A7\\uFE0F?|\\uD83C\\uDF08))?|\\uDFF4(?:\\u200D\\u2620\\uFE0F?|\\uDB40\\uDC67\\uDB40\\uDC62\\uDB40(?:\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F)?)|\\uD83D(?:[\\uDC3F\\uDCFD\\uDD49\\uDD4A\\uDD6F\\uDD70\\uDD73\\uDD76-\\uDD79\\uDD87\\uDD8A-\\uDD8D\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA\\uDECB\\uDECD-\\uDECF\\uDEE0-\\uDEE5\\uDEE9\\uDEF0\\uDEF3]\\uFE0F?|[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDC8F\\uDC91\\uDCAA\\uDD7A\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC6E\\uDC70\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4\\uDEB5](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD74\\uDD90](?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDC00-\\uDC07\\uDC09-\\uDC14\\uDC16-\\uDC25\\uDC27-\\uDC3A\\uDC3C-\\uDC3E\\uDC40\\uDC44\\uDC45\\uDC51-\\uDC65\\uDC6A\\uDC79-\\uDC7B\\uDC7D-\\uDC80\\uDC84\\uDC88-\\uDC8E\\uDC90\\uDC92-\\uDCA9\\uDCAB-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDDA4\\uDDFB-\\uDE2D\\uDE2F-\\uDE34\\uDE37-\\uDE41\\uDE43\\uDE44\\uDE48-\\uDE4A\\uDE80-\\uDEA2\\uDEA4-\\uDEB3\\uDEB7-\\uDEBF\\uDEC1-\\uDEC5\\uDED0-\\uDED2\\uDED5-\\uDED7\\uDEDC-\\uDEDF\\uDEEB\\uDEEC\\uDEF4-\\uDEFC\\uDFE0-\\uDFEB\\uDFF0]|\\uDC08(?:\\u200D\\u2B1B)?|\\uDC15(?:\\u200D\\uD83E\\uDDBA)?|\\uDC26(?:\\u200D(?:\\u2B1B|\\uD83D\\uDD25))?|\\uDC3B(?:\\u200D\\u2744\\uFE0F?)?|\\uDC41\\uFE0F?(?:\\u200D\\uD83D\\uDDE8\\uFE0F?)?|\\uDC68(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDC68\\uDC69]\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?)|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?\\uDC68\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC69(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:\\uDC8B\\u200D\\uD83D)?[\\uDC68\\uDC69]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D(?:[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?|\\uDC69\\u200D\\uD83D(?:\\uDC66(?:\\u200D\\uD83D\\uDC66)?|\\uDC67(?:\\u200D\\uD83D[\\uDC66\\uDC67])?))|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFC-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D\\uD83D(?:[\\uDC68\\uDC69]|\\uDC8B\\u200D\\uD83D[\\uDC68\\uDC69])\\uD83C[\\uDFFB-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83D[\\uDC68\\uDC69]\\uD83C[\\uDFFB-\\uDFFE])))?))?|\\uDC6F(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDD75(?:\\uFE0F|\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|\\uDE2E(?:\\u200D\\uD83D\\uDCA8)?|\\uDE35(?:\\u200D\\uD83D\\uDCAB)?|\\uDE36(?:\\u200D\\uD83C\\uDF2B\\uFE0F?)?|\\uDE42(?:\\u200D[\\u2194\\u2195]\\uFE0F?)?|\\uDEB6(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?)|\\uD83E(?:[\\uDD0C\\uDD0F\\uDD18-\\uDD1F\\uDD30-\\uDD34\\uDD36\\uDD77\\uDDB5\\uDDB6\\uDDBB\\uDDD2\\uDDD3\\uDDD5\\uDEC3-\\uDEC5\\uDEF0\\uDEF2-\\uDEF8](?:\\uD83C[\\uDFFB-\\uDFFF])?|[\\uDD26\\uDD35\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD\\uDDCF\\uDDD4\\uDDD6-\\uDDDD](?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDDDE\\uDDDF](?:\\u200D[\\u2640\\u2642]\\uFE0F?)?|[\\uDD0D\\uDD0E\\uDD10-\\uDD17\\uDD20-\\uDD25\\uDD27-\\uDD2F\\uDD3A\\uDD3F-\\uDD45\\uDD47-\\uDD76\\uDD78-\\uDDB4\\uDDB7\\uDDBA\\uDDBC-\\uDDCC\\uDDD0\\uDDE0-\\uDDFF\\uDE70-\\uDE7C\\uDE80-\\uDE88\\uDE90-\\uDEBD\\uDEBF-\\uDEC2\\uDECE-\\uDEDB\\uDEE0-\\uDEE8]|\\uDD3C(?:\\u200D[\\u2640\\u2642]\\uFE0F?|\\uD83C[\\uDFFB-\\uDFFF])?|\\uDDCE(?:\\uD83C[\\uDFFB-\\uDFFF])?(?:\\u200D(?:[\\u2640\\u2642]\\uFE0F?(?:\\u200D\\u27A1\\uFE0F?)?|\\u27A1\\uFE0F?))?|\\uDDD1(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1|\\uDDD1\\u200D\\uD83E\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?|\\uDDD2(?:\\u200D\\uD83E\\uDDD2)?))|\\uD83C(?:\\uDFFB(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFC-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFC(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFD-\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFD(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFE(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFD\\uDFFF]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?|\\uDFFF(?:\\u200D(?:[\\u2695\\u2696\\u2708]\\uFE0F?|\\u2764\\uFE0F?\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFE]|\\uD83C[\\uDF3E\\uDF73\\uDF7C\\uDF84\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E(?:[\\uDDAF\\uDDBC\\uDDBD](?:\\u200D\\u27A1\\uFE0F?)?|[\\uDDB0-\\uDDB3]|\\uDD1D\\u200D\\uD83E\\uDDD1\\uD83C[\\uDFFB-\\uDFFF])))?))?|\\uDEF1(?:\\uD83C(?:\\uDFFB(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFC-\\uDFFF])?|\\uDFFC(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])?|\\uDFFD(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])?|\\uDFFE(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])?|\\uDFFF(?:\\u200D\\uD83E\\uDEF2\\uD83C[\\uDFFB-\\uDFFE])?))?)/g;\n};\n","export default function isInteractive({stream = process.stdout} = {}) {\n\treturn Boolean(\n\t\tstream && stream.isTTY &&\n\t\tprocess.env.TERM !== 'dumb' &&\n\t\t!('CI' in process.env)\n\t);\n}\n","import process from 'node:process';\n\nexport default function isUnicodeSupported() {\n\tif (process.platform !== 'win32') {\n\t\treturn process.env.TERM !== 'linux'; // Linux console (kernel)\n\t}\n\n\treturn Boolean(process.env.WT_SESSION) // Windows Terminal\n\t\t|| Boolean(process.env.TERMINUS_SUBLIME) // Terminus (<0.2.27)\n\t\t|| process.env.ConEmuTask === '{cmd::Cmder}' // ConEmu and cmder\n\t\t|| process.env.TERM_PROGRAM === 'Terminus-Sublime'\n\t\t|| process.env.TERM_PROGRAM === 'vscode'\n\t\t|| process.env.TERM === 'xterm-256color'\n\t\t|| process.env.TERM === 'alacritty'\n\t\t|| process.env.TERMINAL_EMULATOR === 'JetBrains-JediTerm';\n}\n","import process from 'node:process';\n\nconst ASCII_ETX_CODE = 0x03; // Ctrl+C emits this code\n\nclass StdinDiscarder {\n\t#activeCount = 0;\n\n\tstart() {\n\t\tthis.#activeCount++;\n\n\t\tif (this.#activeCount === 1) {\n\t\t\tthis.#realStart();\n\t\t}\n\t}\n\n\tstop() {\n\t\tif (this.#activeCount <= 0) {\n\t\t\tthrow new Error('`stop` called more times than `start`');\n\t\t}\n\n\t\tthis.#activeCount--;\n\n\t\tif (this.#activeCount === 0) {\n\t\t\tthis.#realStop();\n\t\t}\n\t}\n\n\t#realStart() {\n\t\t// No known way to make it work reliably on Windows.\n\t\tif (process.platform === 'win32' || !process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.setRawMode(true);\n\t\tprocess.stdin.on('data', this.#handleInput);\n\t\tprocess.stdin.resume();\n\t}\n\n\t#realStop() {\n\t\tif (!process.stdin.isTTY) {\n\t\t\treturn;\n\t\t}\n\n\t\tprocess.stdin.off('data', this.#handleInput);\n\t\tprocess.stdin.pause();\n\t\tprocess.stdin.setRawMode(false);\n\t}\n\n\t#handleInput(chunk) {\n\t\t// Allow Ctrl+C to gracefully exit.\n\t\tif (chunk[0] === ASCII_ETX_CODE) {\n\t\t\tprocess.emit('SIGINT');\n\t\t}\n\t}\n}\n\nconst stdinDiscarder = new StdinDiscarder();\n\nexport default stdinDiscarder;\n"],"mappings":"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M,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,KAAK,QAAU,KAAK,QACpB,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,QACN,MAAM,SACN,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,KAAK,SAAU,KAAK,SACpB,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","names":["process","process","process","onetime","process","process","process","process","isUnicodeSupported","process","import_cli_spinners","process","isUnicodeSupported","cliSpinners"]}