@prisma/migrate 6.6.0-dev.6 → 6.6.0-dev.60

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 (150) hide show
  1. package/dist/CLI.js +3 -3
  2. package/dist/Migrate.js +8 -6
  3. package/dist/SchemaEngine.js +5 -5
  4. package/dist/bin.js +47 -46
  5. package/dist/chunk-23DZXSTI.js +62 -0
  6. package/dist/{chunk-WWAWV7DQ.js → chunk-2ESYSVXG.js} +3 -27
  7. package/dist/{chunk-LKTTJWFT.js → chunk-2R6DII47.js} +5 -5
  8. package/dist/chunk-33LPBNDX.js +1399 -0
  9. package/dist/{chunk-V3ZMNXZC.js → chunk-5LKIRKDL.js} +307 -382
  10. package/dist/{chunk-IR55GBON.js → chunk-5LTDMS3H.js} +18 -18
  11. package/dist/{chunk-LOGAFLCN.js → chunk-5R44VVVX.js} +29 -29
  12. package/dist/{chunk-Q3ZLC44N.js → chunk-63X7FE2R.js} +57 -66
  13. package/dist/{chunk-DJMFXNR4.js → chunk-74LUB4XX.js} +56 -57
  14. package/dist/{chunk-N4XTKFY6.js → chunk-7RM467G7.js} +39 -38
  15. package/dist/{chunk-RP2N6UXA.js → chunk-AI6DH66U.js} +6 -6
  16. package/dist/{chunk-A6PMXMMT.js → chunk-AUGZZ6RT.js} +105 -13
  17. package/dist/{chunk-G2XUUMKH.js → chunk-B4SUSDC2.js} +31 -39
  18. package/dist/{chunk-P6CRNGJX.js → chunk-D25S2AO3.js} +369 -528
  19. package/dist/{chunk-ZOEKRXDP.js → chunk-D2DGSPW6.js} +29 -55
  20. package/dist/{chunk-W2SZNLK4.js → chunk-EJG7GKM7.js} +37 -39
  21. package/dist/{chunk-5PSO7BDO.js → chunk-EJUXYFV3.js} +15 -15
  22. package/dist/{chunk-HCBZB4XC.js → chunk-FFPSJTA6.js} +53 -52
  23. package/dist/{chunk-N3KYWSX2.js → chunk-FZGPSDP7.js} +55 -49
  24. package/dist/{chunk-MCWCB2AX.js → chunk-IINN7QUV.js} +170 -643
  25. package/dist/{chunk-255BRND3.js → chunk-KRQEFTDT.js} +6 -6
  26. package/dist/{chunk-VVKOFN3Y.js → chunk-LLO7YF56.js} +44 -46
  27. package/dist/{chunk-VZ23KD5C.js → chunk-NGQA5JTN.js} +8 -10
  28. package/dist/{chunk-MKK3GSDF.js → chunk-NIKXBMZL.js} +5 -5
  29. package/dist/{chunk-GG54LOYV.js → chunk-O6RQXRWU.js} +45 -44
  30. package/dist/{chunk-MATFO4ZW.js → chunk-OEWQACEH.js} +38 -39
  31. package/dist/{chunk-EGPJABTW.js → chunk-QVMYNWAN.js} +257 -103
  32. package/dist/{chunk-V5TUSOJX.js → chunk-SQKGZVG3.js} +45 -45
  33. package/dist/{chunk-6LVK6LMG.js → chunk-T7SQQSVM.js} +370 -529
  34. package/dist/{chunk-CQZFVAXC.js → chunk-TN7JMNXD.js} +42 -41
  35. package/dist/chunk-URKH6SE2.js +479 -0
  36. package/dist/chunk-V6PVGSDJ.js +76 -0
  37. package/dist/{chunk-DLLXDCI2.js → chunk-VAJ4VX67.js} +5 -6
  38. package/dist/{chunk-OCQGHQED.js → chunk-YBX7R3MT.js} +12 -12
  39. package/dist/{chunk-KS7IEA6Z.js → chunk-YGBJA7QJ.js} +50 -52
  40. package/dist/{chunk-WI2A2TQE.js → chunk-ZJ4IDCRR.js} +90 -91
  41. package/dist/chunk-ZLHWX5PJ.js +883 -0
  42. package/dist/commands/DbCommand.js +3 -3
  43. package/dist/commands/DbDrop.js +4 -5
  44. package/dist/commands/DbExecute.js +9 -7
  45. package/dist/commands/DbPull.js +11 -10
  46. package/dist/commands/DbPush.js +10 -9
  47. package/dist/commands/DbSeed.js +4 -5
  48. package/dist/commands/MigrateCommand.js +3 -3
  49. package/dist/commands/MigrateDeploy.js +12 -11
  50. package/dist/commands/MigrateDev.js +14 -13
  51. package/dist/commands/MigrateDiff.js +12 -10
  52. package/dist/commands/MigrateReset.js +13 -12
  53. package/dist/commands/MigrateResolve.js +10 -9
  54. package/dist/commands/MigrateStatus.js +10 -9
  55. package/dist/index.js +50 -51
  56. package/dist/internals/src/Generator.d.ts +23 -5
  57. package/dist/internals/src/cli/checkUnsupportedDataProxy.d.ts +12 -17
  58. package/dist/internals/src/cli/directoryConfig.d.ts +7 -0
  59. package/dist/internals/src/cli/getSchema.d.ts +3 -28
  60. package/dist/internals/src/cli/hashes.d.ts +1 -2
  61. package/dist/internals/src/cli/schemaContext.d.ts +59 -0
  62. package/dist/internals/src/client/getClientEngineType.d.ts +1 -1
  63. package/dist/internals/src/convertCredentials.d.ts +1 -1
  64. package/dist/internals/src/engine-commands/getConfig.d.ts +1 -5
  65. package/dist/internals/src/engine-commands/getDmmf.d.ts +3 -6
  66. package/dist/internals/src/engine-commands/lintSchema.d.ts +1 -1
  67. package/dist/internals/src/errorReporting.d.ts +0 -1
  68. package/dist/internals/src/get-generators/getGenerators.d.ts +22 -9
  69. package/dist/internals/src/get-generators/utils/binaryTypeToEngineType.d.ts +1 -1
  70. package/dist/internals/src/get-generators/utils/engineTypeToBinaryType.d.ts +1 -1
  71. package/dist/internals/src/get-generators/utils/fixBinaryTargets.d.ts +1 -1
  72. package/dist/internals/src/get-generators/utils/getBinaryPathsByVersion.d.ts +1 -1
  73. package/dist/internals/src/get-generators/utils/getEngineVersionForGenerator.d.ts +1 -1
  74. package/dist/internals/src/get-generators/utils/printGeneratorConfig.d.ts +1 -1
  75. package/dist/internals/src/index.d.ts +7 -7
  76. package/dist/internals/src/migrateTypes.d.ts +63 -0
  77. package/dist/internals/src/panic.d.ts +1 -4
  78. package/dist/internals/src/resolvePkg.d.ts +7 -0
  79. package/dist/internals/src/types.d.ts +1 -1
  80. package/dist/internals/src/utils/extractPreviewFeatures.d.ts +2 -2
  81. package/dist/internals/src/utils/getEnvPaths.d.ts +1 -1
  82. package/dist/internals/src/utils/parseEnvValue.d.ts +1 -1
  83. package/dist/internals/src/utils/schemaFileInput.d.ts +0 -4
  84. package/dist/internals/src/utils/toSchemasContainer.d.ts +2 -3
  85. package/dist/migrate/src/Migrate.d.ts +7 -5
  86. package/dist/migrate/src/SchemaEngine.d.ts +5 -9
  87. package/dist/migrate/src/index.d.ts +0 -1
  88. package/dist/migrate/src/types.d.ts +14 -10
  89. package/dist/migrate/src/utils/createMigration.d.ts +21 -0
  90. package/dist/migrate/src/utils/ensureDatabaseExists.d.ts +4 -6
  91. package/dist/migrate/src/utils/introspectSql.d.ts +3 -2
  92. package/dist/migrate/src/utils/listMigrations.d.ts +9 -0
  93. package/dist/migrate/src/utils/printDatasources.d.ts +1 -1
  94. package/dist/migrate/src/utils/seed.d.ts +0 -2
  95. package/dist/migrate/src/views/handleViewsIO.d.ts +2 -2
  96. package/dist/{multipart-parser-54WEFGGN-NLZG56KM.js → multipart-parser-ASKQAOL4-WZ47HU6G.js} +92 -125
  97. package/dist/{multipart-parser-NDLECNMN.js → multipart-parser-QCI3Y5IB.js} +66 -68
  98. package/dist/types.js +1 -1
  99. package/dist/{typescript-WN4QH2CP.js → typescript-2LKASCMC.js} +33 -33
  100. package/dist/{typescript-AILDXN3I.js → typescript-H3AVJ6KX.js} +32 -32
  101. package/dist/utils/byline.js +1 -1
  102. package/dist/utils/captureStdout.js +3 -3
  103. package/dist/utils/countModelsAndTypes.js +1 -1
  104. package/dist/utils/{getSchemaPathAndPrint.js → createMigration.js} +8 -8
  105. package/dist/utils/customColors.js +1 -1
  106. package/dist/utils/ensureDatabaseExists.js +7 -7
  107. package/dist/utils/errors.js +1 -1
  108. package/dist/utils/flagErrors.js +1 -1
  109. package/dist/utils/getDatabaseVersionSafe.js +5 -5
  110. package/dist/utils/handleEvaluateDataloss.js +1 -1
  111. package/dist/utils/introspectSql.js +5 -5
  112. package/dist/utils/isSchemaEmpty.js +1 -1
  113. package/dist/utils/listMigrations.js +25 -0
  114. package/dist/utils/now.js +1 -1
  115. package/dist/utils/printDatasource.js +1 -1
  116. package/dist/utils/printDatasources.js +5 -5
  117. package/dist/utils/printFiles.js +5 -5
  118. package/dist/utils/printIntrospectedSchema.js +1 -1
  119. package/dist/utils/printMigrationId.js +1 -1
  120. package/dist/utils/promptForMigrationName.js +3 -3
  121. package/dist/utils/removeSchemaFiles.js +1 -1
  122. package/dist/utils/replaceOrAddDatasource.js +1 -1
  123. package/dist/utils/replaceOrAddDatasource.test.js +1 -1
  124. package/dist/utils/saveSchemaFiles.js +1 -1
  125. package/dist/utils/seed.js +4 -7
  126. package/dist/utils/setupCockroach.js +3 -3
  127. package/dist/utils/setupMSSQL.js +1478 -707
  128. package/dist/utils/setupMongo.js +552 -552
  129. package/dist/utils/setupMysql.js +508 -563
  130. package/dist/utils/setupPostgres.js +3 -3
  131. package/dist/utils/spinner.js +4 -3
  132. package/dist/utils/test-handlePanic.js +1 -30
  133. package/dist/utils/unixSocket.js +1 -1
  134. package/dist/views/handleViewsIO.js +3 -3
  135. package/package.json +10 -10
  136. package/dist/chunk-GKDFIHM2.js +0 -45
  137. package/dist/chunk-J46BJQHT.js +0 -268
  138. package/dist/chunk-KOF4LGTS.js +0 -1817
  139. package/dist/chunk-YYPMC5FN.js +0 -1407
  140. package/dist/internals/src/get-generators/generatorResolvers/generatorResolvers.d.ts +0 -15
  141. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/auto-installation/findPrismaClientDir.d.ts +0 -6
  142. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/auto-installation/getPackageCmd.d.ts +0 -9
  143. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/auto-installation/runPackageCmd.d.ts +0 -8
  144. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/check-dependencies/checkTypeScriptVersion.d.ts +0 -6
  145. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/check-dependencies/isYarnUsed.d.ts +0 -1
  146. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/check-dependencies/resolve.d.ts +0 -20
  147. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/check-dependencies/semverLt.d.ts +0 -7
  148. package/dist/internals/src/get-generators/generatorResolvers/prisma-client-js/prismaClientResolver.d.ts +0 -20
  149. package/dist/internals/src/get-generators/utils/check-feature-flags/checkFeatureFlags.d.ts +0 -8
  150. package/dist/migrate/src/utils/getSchemaPathAndPrint.d.ts +0 -10
@@ -26,25 +26,45 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_CQZFVAXC_exports = {};
30
- __export(chunk_CQZFVAXC_exports, {
29
+ var chunk_TN7JMNXD_exports = {};
30
+ __export(chunk_TN7JMNXD_exports, {
31
31
  MigrateDeploy: () => MigrateDeploy
32
32
  });
33
- module.exports = __toCommonJS(chunk_CQZFVAXC_exports);
34
- var import_chunk_255BRND3 = require("./chunk-255BRND3.js");
35
- var import_chunk_KOF4LGTS = require("./chunk-KOF4LGTS.js");
36
- var import_chunk_GKDFIHM2 = require("./chunk-GKDFIHM2.js");
33
+ module.exports = __toCommonJS(chunk_TN7JMNXD_exports);
34
+ var import_chunk_KRQEFTDT = require("./chunk-KRQEFTDT.js");
35
+ var import_chunk_ZLHWX5PJ = require("./chunk-ZLHWX5PJ.js");
37
36
  var import_chunk_QOPTDDIH = require("./chunk-QOPTDDIH.js");
38
- var import_chunk_DJMFXNR4 = require("./chunk-DJMFXNR4.js");
37
+ var import_chunk_74LUB4XX = require("./chunk-74LUB4XX.js");
39
38
  var import_chunk_SKRR5WT4 = require("./chunk-SKRR5WT4.js");
40
- var import_chunk_WWAWV7DQ = require("./chunk-WWAWV7DQ.js");
41
39
  var import_debug = __toESM(require("@prisma/debug"));
42
40
  var import_internals = require("@prisma/internals");
43
41
  var debug = (0, import_debug.default)("prisma:migrate:deploy");
44
- var _MigrateDeploy = class _MigrateDeploy2 {
42
+ var MigrateDeploy = class _MigrateDeploy {
45
43
  static new() {
46
- return new _MigrateDeploy2();
44
+ return new _MigrateDeploy();
47
45
  }
46
+ static help = (0, import_internals.format)(`
47
+ Apply pending migrations to update the database schema in production/staging
48
+
49
+ ${(0, import_chunk_SKRR5WT4.bold)("Usage")}
50
+
51
+ ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy [options]
52
+
53
+ ${(0, import_chunk_SKRR5WT4.bold)("Options")}
54
+
55
+ -h, --help Display this help message
56
+ --config Custom path to your Prisma config file
57
+ --schema Custom path to your Prisma schema
58
+
59
+ ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
60
+
61
+ Deploy your pending migrations to your production/staging database
62
+ ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy
63
+
64
+ Specify a schema
65
+ ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy --schema=./schema.prisma
66
+
67
+ `);
48
68
  async parse(argv, config) {
49
69
  const args = (0, import_internals.arg)(
50
70
  argv,
@@ -60,16 +80,20 @@ var _MigrateDeploy = class _MigrateDeploy2 {
60
80
  if ((0, import_internals.isError)(args)) {
61
81
  return this.help(args.message);
62
82
  }
63
- await (0, import_internals.checkUnsupportedDataProxy)("migrate deploy", args, config.schema, true);
64
83
  if (args["--help"]) {
65
84
  return this.help();
66
85
  }
67
86
  await (0, import_internals.loadEnvFile)({ schemaPath: args["--schema"], printMessage: true, config });
68
- const { schemaPath } = await (0, import_chunk_GKDFIHM2.getSchemaPathAndPrint)(args["--schema"], config.schema);
69
- (0, import_chunk_QOPTDDIH.printDatasource)({ datasourceInfo: await (0, import_chunk_DJMFXNR4.getDatasourceInfo)({ schemaPath }) });
70
- const migrate = new import_chunk_KOF4LGTS.Migrate(schemaPath);
87
+ const schemaContext = await (0, import_internals.loadSchemaContext)({
88
+ schemaPathFromArg: args["--schema"],
89
+ schemaPathFromConfig: config.schema
90
+ });
91
+ const { migrationsDirPath } = (0, import_internals.inferDirectoryConfig)(schemaContext);
92
+ (0, import_internals.checkUnsupportedDataProxy)({ cmd: "migrate deploy", schemaContext });
93
+ (0, import_chunk_QOPTDDIH.printDatasource)({ datasourceInfo: (0, import_chunk_74LUB4XX.parseDatasourceInfo)(schemaContext.primaryDatasource) });
94
+ const migrate = new import_chunk_ZLHWX5PJ.Migrate(schemaContext, migrationsDirPath);
71
95
  try {
72
- const wasDbCreated = await (0, import_chunk_DJMFXNR4.ensureDatabaseExists)("apply", schemaPath);
96
+ const wasDbCreated = await (0, import_chunk_74LUB4XX.ensureDatabaseExists)(schemaContext.primaryDatasource);
73
97
  if (wasDbCreated) {
74
98
  process.stdout.write("\n" + wasDbCreated + "\n");
75
99
  }
@@ -104,7 +128,7 @@ var _MigrateDeploy = class _MigrateDeploy2 {
104
128
  } else {
105
129
  return `The following migration(s) have been applied:
106
130
 
107
- ${(0, import_chunk_255BRND3.printFilesFromMigrationIds)(
131
+ ${(0, import_chunk_KRQEFTDT.printFilesFromMigrationIds)(
108
132
  "migrations",
109
133
  migrationIds,
110
134
  {
@@ -119,31 +143,8 @@ ${(0, import_chunk_SKRR5WT4.green)("All migrations have been successfully applie
119
143
  if (error) {
120
144
  return new import_internals.HelpError(`
121
145
  ${(0, import_chunk_SKRR5WT4.bold)((0, import_chunk_SKRR5WT4.red)(`!`))} ${error}
122
- ${_MigrateDeploy2.help}`);
146
+ ${_MigrateDeploy.help}`);
123
147
  }
124
- return _MigrateDeploy2.help;
148
+ return _MigrateDeploy.help;
125
149
  }
126
150
  };
127
- (0, import_chunk_WWAWV7DQ.__publicField)(_MigrateDeploy, "help", (0, import_internals.format)(`
128
- Apply pending migrations to update the database schema in production/staging
129
-
130
- ${(0, import_chunk_SKRR5WT4.bold)("Usage")}
131
-
132
- ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy [options]
133
-
134
- ${(0, import_chunk_SKRR5WT4.bold)("Options")}
135
-
136
- -h, --help Display this help message
137
- --config Custom path to your Prisma config file
138
- --schema Custom path to your Prisma schema
139
-
140
- ${(0, import_chunk_SKRR5WT4.bold)("Examples")}
141
-
142
- Deploy your pending migrations to your production/staging database
143
- ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy
144
-
145
- Specify a schema
146
- ${(0, import_chunk_SKRR5WT4.dim)("$")} prisma migrate deploy --schema=./schema.prisma
147
-
148
- `));
149
- var MigrateDeploy = _MigrateDeploy;
@@ -0,0 +1,479 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var chunk_URKH6SE2_exports = {};
30
+ __export(chunk_URKH6SE2_exports, {
31
+ cli_cursor_default: () => cli_cursor_default,
32
+ eastAsianWidth: () => eastAsianWidth,
33
+ stringWidth: () => stringWidth,
34
+ stripAnsi: () => stripAnsi
35
+ });
36
+ module.exports = __toCommonJS(chunk_URKH6SE2_exports);
37
+ var import_node_process = __toESM(require("node:process"));
38
+ var import_node_process2 = __toESM(require("node:process"));
39
+ var copyProperty = (to, from, property, ignoreNonConfigurable) => {
40
+ if (property === "length" || property === "prototype") {
41
+ return;
42
+ }
43
+ if (property === "arguments" || property === "caller") {
44
+ return;
45
+ }
46
+ const toDescriptor = Object.getOwnPropertyDescriptor(to, property);
47
+ const fromDescriptor = Object.getOwnPropertyDescriptor(from, property);
48
+ if (!canCopyProperty(toDescriptor, fromDescriptor) && ignoreNonConfigurable) {
49
+ return;
50
+ }
51
+ Object.defineProperty(to, property, fromDescriptor);
52
+ };
53
+ var canCopyProperty = function(toDescriptor, fromDescriptor) {
54
+ return toDescriptor === void 0 || toDescriptor.configurable || toDescriptor.writable === fromDescriptor.writable && toDescriptor.enumerable === fromDescriptor.enumerable && toDescriptor.configurable === fromDescriptor.configurable && (toDescriptor.writable || toDescriptor.value === fromDescriptor.value);
55
+ };
56
+ var changePrototype = (to, from) => {
57
+ const fromPrototype = Object.getPrototypeOf(from);
58
+ if (fromPrototype === Object.getPrototypeOf(to)) {
59
+ return;
60
+ }
61
+ Object.setPrototypeOf(to, fromPrototype);
62
+ };
63
+ var wrappedToString = (withName, fromBody) => `/* Wrapped ${withName}*/
64
+ ${fromBody}`;
65
+ var toStringDescriptor = Object.getOwnPropertyDescriptor(Function.prototype, "toString");
66
+ var toStringName = Object.getOwnPropertyDescriptor(Function.prototype.toString, "name");
67
+ var changeToString = (to, from, name) => {
68
+ const withName = name === "" ? "" : `with ${name.trim()}() `;
69
+ const newToString = wrappedToString.bind(null, withName, from.toString());
70
+ Object.defineProperty(newToString, "name", toStringName);
71
+ const { writable, enumerable, configurable } = toStringDescriptor;
72
+ Object.defineProperty(to, "toString", { value: newToString, writable, enumerable, configurable });
73
+ };
74
+ function mimicFunction(to, from, { ignoreNonConfigurable = false } = {}) {
75
+ const { name } = to;
76
+ for (const property of Reflect.ownKeys(from)) {
77
+ copyProperty(to, from, property, ignoreNonConfigurable);
78
+ }
79
+ changePrototype(to, from);
80
+ changeToString(to, from, name);
81
+ return to;
82
+ }
83
+ var calledFunctions = /* @__PURE__ */ new WeakMap();
84
+ var onetime = (function_, options = {}) => {
85
+ if (typeof function_ !== "function") {
86
+ throw new TypeError("Expected a function");
87
+ }
88
+ let returnValue;
89
+ let callCount = 0;
90
+ const functionName = function_.displayName || function_.name || "<anonymous>";
91
+ const onetime2 = function(...arguments_) {
92
+ calledFunctions.set(onetime2, ++callCount);
93
+ if (callCount === 1) {
94
+ returnValue = function_.apply(this, arguments_);
95
+ function_ = void 0;
96
+ } else if (options.throw === true) {
97
+ throw new Error(`Function \`${functionName}\` can only be called once`);
98
+ }
99
+ return returnValue;
100
+ };
101
+ mimicFunction(onetime2, function_);
102
+ calledFunctions.set(onetime2, callCount);
103
+ return onetime2;
104
+ };
105
+ onetime.callCount = (function_) => {
106
+ if (!calledFunctions.has(function_)) {
107
+ throw new Error(`The given function \`${function_.name}\` is not wrapped by the \`onetime\` package`);
108
+ }
109
+ return calledFunctions.get(function_);
110
+ };
111
+ var onetime_default = onetime;
112
+ var signals = [];
113
+ signals.push("SIGHUP", "SIGINT", "SIGTERM");
114
+ if (process.platform !== "win32") {
115
+ signals.push(
116
+ "SIGALRM",
117
+ "SIGABRT",
118
+ "SIGVTALRM",
119
+ "SIGXCPU",
120
+ "SIGXFSZ",
121
+ "SIGUSR2",
122
+ "SIGTRAP",
123
+ "SIGSYS",
124
+ "SIGQUIT",
125
+ "SIGIOT"
126
+ // should detect profiler and enable/disable accordingly.
127
+ // see #21
128
+ // 'SIGPROF'
129
+ );
130
+ }
131
+ if (process.platform === "linux") {
132
+ signals.push("SIGIO", "SIGPOLL", "SIGPWR", "SIGSTKFLT");
133
+ }
134
+ var processOk = (process5) => !!process5 && typeof process5 === "object" && typeof process5.removeListener === "function" && typeof process5.emit === "function" && typeof process5.reallyExit === "function" && typeof process5.listeners === "function" && typeof process5.kill === "function" && typeof process5.pid === "number" && typeof process5.on === "function";
135
+ var kExitEmitter = Symbol.for("signal-exit emitter");
136
+ var global = globalThis;
137
+ var ObjectDefineProperty = Object.defineProperty.bind(Object);
138
+ var Emitter = class {
139
+ emitted = {
140
+ afterExit: false,
141
+ exit: false
142
+ };
143
+ listeners = {
144
+ afterExit: [],
145
+ exit: []
146
+ };
147
+ count = 0;
148
+ id = Math.random();
149
+ constructor() {
150
+ if (global[kExitEmitter]) {
151
+ return global[kExitEmitter];
152
+ }
153
+ ObjectDefineProperty(global, kExitEmitter, {
154
+ value: this,
155
+ writable: false,
156
+ enumerable: false,
157
+ configurable: false
158
+ });
159
+ }
160
+ on(ev, fn) {
161
+ this.listeners[ev].push(fn);
162
+ }
163
+ removeListener(ev, fn) {
164
+ const list = this.listeners[ev];
165
+ const i = list.indexOf(fn);
166
+ if (i === -1) {
167
+ return;
168
+ }
169
+ if (i === 0 && list.length === 1) {
170
+ list.length = 0;
171
+ } else {
172
+ list.splice(i, 1);
173
+ }
174
+ }
175
+ emit(ev, code, signal) {
176
+ if (this.emitted[ev]) {
177
+ return false;
178
+ }
179
+ this.emitted[ev] = true;
180
+ let ret = false;
181
+ for (const fn of this.listeners[ev]) {
182
+ ret = fn(code, signal) === true || ret;
183
+ }
184
+ if (ev === "exit") {
185
+ ret = this.emit("afterExit", code, signal) || ret;
186
+ }
187
+ return ret;
188
+ }
189
+ };
190
+ var SignalExitBase = class {
191
+ };
192
+ var signalExitWrap = (handler) => {
193
+ return {
194
+ onExit(cb, opts) {
195
+ return handler.onExit(cb, opts);
196
+ },
197
+ load() {
198
+ return handler.load();
199
+ },
200
+ unload() {
201
+ return handler.unload();
202
+ }
203
+ };
204
+ };
205
+ var SignalExitFallback = class extends SignalExitBase {
206
+ onExit() {
207
+ return () => {
208
+ };
209
+ }
210
+ load() {
211
+ }
212
+ unload() {
213
+ }
214
+ };
215
+ var SignalExit = class extends SignalExitBase {
216
+ // "SIGHUP" throws an `ENOSYS` error on Windows,
217
+ // so use a supported signal instead
218
+ /* c8 ignore start */
219
+ #hupSig = process2.platform === "win32" ? "SIGINT" : "SIGHUP";
220
+ /* c8 ignore stop */
221
+ #emitter = new Emitter();
222
+ #process;
223
+ #originalProcessEmit;
224
+ #originalProcessReallyExit;
225
+ #sigListeners = {};
226
+ #loaded = false;
227
+ constructor(process5) {
228
+ super();
229
+ this.#process = process5;
230
+ this.#sigListeners = {};
231
+ for (const sig of signals) {
232
+ this.#sigListeners[sig] = () => {
233
+ const listeners = this.#process.listeners(sig);
234
+ let { count } = this.#emitter;
235
+ const p = process5;
236
+ if (typeof p.__signal_exit_emitter__ === "object" && typeof p.__signal_exit_emitter__.count === "number") {
237
+ count += p.__signal_exit_emitter__.count;
238
+ }
239
+ if (listeners.length === count) {
240
+ this.unload();
241
+ const ret = this.#emitter.emit("exit", null, sig);
242
+ const s = sig === "SIGHUP" ? this.#hupSig : sig;
243
+ if (!ret)
244
+ process5.kill(process5.pid, s);
245
+ }
246
+ };
247
+ }
248
+ this.#originalProcessReallyExit = process5.reallyExit;
249
+ this.#originalProcessEmit = process5.emit;
250
+ }
251
+ onExit(cb, opts) {
252
+ if (!processOk(this.#process)) {
253
+ return () => {
254
+ };
255
+ }
256
+ if (this.#loaded === false) {
257
+ this.load();
258
+ }
259
+ const ev = opts?.alwaysLast ? "afterExit" : "exit";
260
+ this.#emitter.on(ev, cb);
261
+ return () => {
262
+ this.#emitter.removeListener(ev, cb);
263
+ if (this.#emitter.listeners["exit"].length === 0 && this.#emitter.listeners["afterExit"].length === 0) {
264
+ this.unload();
265
+ }
266
+ };
267
+ }
268
+ load() {
269
+ if (this.#loaded) {
270
+ return;
271
+ }
272
+ this.#loaded = true;
273
+ this.#emitter.count += 1;
274
+ for (const sig of signals) {
275
+ try {
276
+ const fn = this.#sigListeners[sig];
277
+ if (fn)
278
+ this.#process.on(sig, fn);
279
+ } catch (_) {
280
+ }
281
+ }
282
+ this.#process.emit = (ev, ...a) => {
283
+ return this.#processEmit(ev, ...a);
284
+ };
285
+ this.#process.reallyExit = (code) => {
286
+ return this.#processReallyExit(code);
287
+ };
288
+ }
289
+ unload() {
290
+ if (!this.#loaded) {
291
+ return;
292
+ }
293
+ this.#loaded = false;
294
+ signals.forEach((sig) => {
295
+ const listener = this.#sigListeners[sig];
296
+ if (!listener) {
297
+ throw new Error("Listener not defined for signal: " + sig);
298
+ }
299
+ try {
300
+ this.#process.removeListener(sig, listener);
301
+ } catch (_) {
302
+ }
303
+ });
304
+ this.#process.emit = this.#originalProcessEmit;
305
+ this.#process.reallyExit = this.#originalProcessReallyExit;
306
+ this.#emitter.count -= 1;
307
+ }
308
+ #processReallyExit(code) {
309
+ if (!processOk(this.#process)) {
310
+ return 0;
311
+ }
312
+ this.#process.exitCode = code || 0;
313
+ this.#emitter.emit("exit", this.#process.exitCode, null);
314
+ return this.#originalProcessReallyExit.call(this.#process, this.#process.exitCode);
315
+ }
316
+ #processEmit(ev, ...args) {
317
+ const og = this.#originalProcessEmit;
318
+ if (ev === "exit" && processOk(this.#process)) {
319
+ if (typeof args[0] === "number") {
320
+ this.#process.exitCode = args[0];
321
+ }
322
+ const ret = og.call(this.#process, ev, ...args);
323
+ this.#emitter.emit("exit", this.#process.exitCode, null);
324
+ return ret;
325
+ } else {
326
+ return og.call(this.#process, ev, ...args);
327
+ }
328
+ }
329
+ };
330
+ var process2 = globalThis.process;
331
+ var {
332
+ /**
333
+ * Called when the process is exiting, whether via signal, explicit
334
+ * exit, or running out of stuff to do.
335
+ *
336
+ * If the global process object is not suitable for instrumentation,
337
+ * then this will be a no-op.
338
+ *
339
+ * Returns a function that may be used to unload signal-exit.
340
+ */
341
+ onExit,
342
+ /**
343
+ * Load the listeners. Likely you never need to call this, unless
344
+ * doing a rather deep integration with signal-exit functionality.
345
+ * Mostly exposed for the benefit of testing.
346
+ *
347
+ * @internal
348
+ */
349
+ load,
350
+ /**
351
+ * Unload the listeners. Likely you never need to call this, unless
352
+ * doing a rather deep integration with signal-exit functionality.
353
+ * Mostly exposed for the benefit of testing.
354
+ *
355
+ * @internal
356
+ */
357
+ unload
358
+ } = signalExitWrap(processOk(process2) ? new SignalExit(process2) : new SignalExitFallback());
359
+ var terminal = import_node_process2.default.stderr.isTTY ? import_node_process2.default.stderr : import_node_process2.default.stdout.isTTY ? import_node_process2.default.stdout : void 0;
360
+ var restoreCursor = terminal ? onetime_default(() => {
361
+ onExit(() => {
362
+ terminal.write("\x1B[?25h");
363
+ }, { alwaysLast: true });
364
+ }) : () => {
365
+ };
366
+ var restore_cursor_default = restoreCursor;
367
+ var isHidden = false;
368
+ var cliCursor = {};
369
+ cliCursor.show = (writableStream = import_node_process.default.stderr) => {
370
+ if (!writableStream.isTTY) {
371
+ return;
372
+ }
373
+ isHidden = false;
374
+ writableStream.write("\x1B[?25h");
375
+ };
376
+ cliCursor.hide = (writableStream = import_node_process.default.stderr) => {
377
+ if (!writableStream.isTTY) {
378
+ return;
379
+ }
380
+ restore_cursor_default();
381
+ isHidden = true;
382
+ writableStream.write("\x1B[?25l");
383
+ };
384
+ cliCursor.toggle = (force, writableStream) => {
385
+ if (force !== void 0) {
386
+ isHidden = force;
387
+ }
388
+ if (isHidden) {
389
+ cliCursor.show(writableStream);
390
+ } else {
391
+ cliCursor.hide(writableStream);
392
+ }
393
+ };
394
+ var cli_cursor_default = cliCursor;
395
+ function ansiRegex({ onlyFirst = false } = {}) {
396
+ const ST = "(?:\\u0007|\\u001B\\u005C|\\u009C)";
397
+ const pattern = [
398
+ `[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?${ST})`,
399
+ "(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))"
400
+ ].join("|");
401
+ return new RegExp(pattern, onlyFirst ? void 0 : "g");
402
+ }
403
+ var regex = ansiRegex();
404
+ function stripAnsi(string) {
405
+ if (typeof string !== "string") {
406
+ throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``);
407
+ }
408
+ return string.replace(regex, "");
409
+ }
410
+ function isAmbiguous(x) {
411
+ return x === 161 || x === 164 || x === 167 || x === 168 || x === 170 || x === 173 || x === 174 || x >= 176 && x <= 180 || x >= 182 && x <= 186 || x >= 188 && x <= 191 || x === 198 || x === 208 || x === 215 || x === 216 || x >= 222 && x <= 225 || x === 230 || x >= 232 && x <= 234 || x === 236 || x === 237 || x === 240 || x === 242 || x === 243 || x >= 247 && x <= 250 || x === 252 || x === 254 || x === 257 || x === 273 || x === 275 || x === 283 || x === 294 || x === 295 || x === 299 || x >= 305 && x <= 307 || x === 312 || x >= 319 && x <= 322 || x === 324 || x >= 328 && x <= 331 || x === 333 || x === 338 || x === 339 || x === 358 || x === 359 || x === 363 || x === 462 || x === 464 || x === 466 || x === 468 || x === 470 || x === 472 || x === 474 || x === 476 || x === 593 || x === 609 || x === 708 || x === 711 || x >= 713 && x <= 715 || x === 717 || x === 720 || x >= 728 && x <= 731 || x === 733 || x === 735 || x >= 768 && x <= 879 || x >= 913 && x <= 929 || x >= 931 && x <= 937 || x >= 945 && x <= 961 || x >= 963 && x <= 969 || x === 1025 || x >= 1040 && x <= 1103 || x === 1105 || x === 8208 || x >= 8211 && x <= 8214 || x === 8216 || x === 8217 || x === 8220 || x === 8221 || x >= 8224 && x <= 8226 || x >= 8228 && x <= 8231 || x === 8240 || x === 8242 || x === 8243 || x === 8245 || x === 8251 || x === 8254 || x === 8308 || x === 8319 || x >= 8321 && x <= 8324 || x === 8364 || x === 8451 || x === 8453 || x === 8457 || x === 8467 || x === 8470 || x === 8481 || x === 8482 || x === 8486 || x === 8491 || x === 8531 || x === 8532 || x >= 8539 && x <= 8542 || x >= 8544 && x <= 8555 || x >= 8560 && x <= 8569 || x === 8585 || x >= 8592 && x <= 8601 || x === 8632 || x === 8633 || x === 8658 || x === 8660 || x === 8679 || x === 8704 || x === 8706 || x === 8707 || x === 8711 || x === 8712 || x === 8715 || x === 8719 || x === 8721 || x === 8725 || x === 8730 || x >= 8733 && x <= 8736 || x === 8739 || x === 8741 || x >= 8743 && x <= 8748 || x === 8750 || x >= 8756 && x <= 8759 || x === 8764 || x === 8765 || x === 8776 || x === 8780 || x === 8786 || x === 8800 || x === 8801 || x >= 8804 && x <= 8807 || x === 8810 || x === 8811 || x === 8814 || x === 8815 || x === 8834 || x === 8835 || x === 8838 || x === 8839 || x === 8853 || x === 8857 || x === 8869 || x === 8895 || x === 8978 || x >= 9312 && x <= 9449 || x >= 9451 && x <= 9547 || x >= 9552 && x <= 9587 || x >= 9600 && x <= 9615 || x >= 9618 && x <= 9621 || x === 9632 || x === 9633 || x >= 9635 && x <= 9641 || x === 9650 || x === 9651 || x === 9654 || x === 9655 || x === 9660 || x === 9661 || x === 9664 || x === 9665 || x >= 9670 && x <= 9672 || x === 9675 || x >= 9678 && x <= 9681 || x >= 9698 && x <= 9701 || x === 9711 || x === 9733 || x === 9734 || x === 9737 || x === 9742 || x === 9743 || x === 9756 || x === 9758 || x === 9792 || x === 9794 || x === 9824 || x === 9825 || x >= 9827 && x <= 9829 || x >= 9831 && x <= 9834 || x === 9836 || x === 9837 || x === 9839 || x === 9886 || x === 9887 || x === 9919 || x >= 9926 && x <= 9933 || x >= 9935 && x <= 9939 || x >= 9941 && x <= 9953 || x === 9955 || x === 9960 || x === 9961 || x >= 9963 && x <= 9969 || x === 9972 || x >= 9974 && x <= 9977 || x === 9979 || x === 9980 || x === 9982 || x === 9983 || x === 10045 || x >= 10102 && x <= 10111 || x >= 11094 && x <= 11097 || x >= 12872 && x <= 12879 || x >= 57344 && x <= 63743 || x >= 65024 && x <= 65039 || x === 65533 || x >= 127232 && x <= 127242 || x >= 127248 && x <= 127277 || x >= 127280 && x <= 127337 || x >= 127344 && x <= 127373 || x === 127375 || x === 127376 || x >= 127387 && x <= 127404 || x >= 917760 && x <= 917999 || x >= 983040 && x <= 1048573 || x >= 1048576 && x <= 1114109;
412
+ }
413
+ function isFullWidth(x) {
414
+ return x === 12288 || x >= 65281 && x <= 65376 || x >= 65504 && x <= 65510;
415
+ }
416
+ function isWide(x) {
417
+ return x >= 4352 && x <= 4447 || x === 8986 || x === 8987 || x === 9001 || x === 9002 || x >= 9193 && x <= 9196 || x === 9200 || x === 9203 || x === 9725 || x === 9726 || x === 9748 || x === 9749 || x >= 9776 && x <= 9783 || x >= 9800 && x <= 9811 || x === 9855 || x >= 9866 && x <= 9871 || x === 9875 || x === 9889 || x === 9898 || x === 9899 || x === 9917 || x === 9918 || x === 9924 || x === 9925 || x === 9934 || x === 9940 || x === 9962 || x === 9970 || x === 9971 || x === 9973 || x === 9978 || x === 9981 || x === 9989 || x === 9994 || x === 9995 || x === 10024 || x === 10060 || x === 10062 || x >= 10067 && x <= 10069 || x === 10071 || x >= 10133 && x <= 10135 || x === 10160 || x === 10175 || x === 11035 || x === 11036 || x === 11088 || x === 11093 || x >= 11904 && x <= 11929 || x >= 11931 && x <= 12019 || x >= 12032 && x <= 12245 || x >= 12272 && x <= 12287 || x >= 12289 && x <= 12350 || x >= 12353 && x <= 12438 || x >= 12441 && x <= 12543 || x >= 12549 && x <= 12591 || x >= 12593 && x <= 12686 || x >= 12688 && x <= 12773 || x >= 12783 && x <= 12830 || x >= 12832 && x <= 12871 || x >= 12880 && x <= 42124 || x >= 42128 && x <= 42182 || x >= 43360 && x <= 43388 || x >= 44032 && x <= 55203 || x >= 63744 && x <= 64255 || x >= 65040 && x <= 65049 || x >= 65072 && x <= 65106 || x >= 65108 && x <= 65126 || x >= 65128 && x <= 65131 || x >= 94176 && x <= 94180 || x === 94192 || x === 94193 || x >= 94208 && x <= 100343 || x >= 100352 && x <= 101589 || x >= 101631 && x <= 101640 || x >= 110576 && x <= 110579 || x >= 110581 && x <= 110587 || x === 110589 || x === 110590 || x >= 110592 && x <= 110882 || x === 110898 || x >= 110928 && x <= 110930 || x === 110933 || x >= 110948 && x <= 110951 || x >= 110960 && x <= 111355 || x >= 119552 && x <= 119638 || x >= 119648 && x <= 119670 || x === 126980 || x === 127183 || x === 127374 || x >= 127377 && x <= 127386 || x >= 127488 && x <= 127490 || x >= 127504 && x <= 127547 || x >= 127552 && x <= 127560 || x === 127568 || x === 127569 || x >= 127584 && x <= 127589 || x >= 127744 && x <= 127776 || x >= 127789 && x <= 127797 || x >= 127799 && x <= 127868 || x >= 127870 && x <= 127891 || x >= 127904 && x <= 127946 || x >= 127951 && x <= 127955 || x >= 127968 && x <= 127984 || x === 127988 || x >= 127992 && x <= 128062 || x === 128064 || x >= 128066 && x <= 128252 || x >= 128255 && x <= 128317 || x >= 128331 && x <= 128334 || x >= 128336 && x <= 128359 || x === 128378 || x === 128405 || x === 128406 || x === 128420 || x >= 128507 && x <= 128591 || x >= 128640 && x <= 128709 || x === 128716 || x >= 128720 && x <= 128722 || x >= 128725 && x <= 128727 || x >= 128732 && x <= 128735 || x === 128747 || x === 128748 || x >= 128756 && x <= 128764 || x >= 128992 && x <= 129003 || x === 129008 || x >= 129292 && x <= 129338 || x >= 129340 && x <= 129349 || x >= 129351 && x <= 129535 || x >= 129648 && x <= 129660 || x >= 129664 && x <= 129673 || x >= 129679 && x <= 129734 || x >= 129742 && x <= 129756 || x >= 129759 && x <= 129769 || x >= 129776 && x <= 129784 || x >= 131072 && x <= 196605 || x >= 196608 && x <= 262141;
418
+ }
419
+ function validate(codePoint) {
420
+ if (!Number.isSafeInteger(codePoint)) {
421
+ throw new TypeError(`Expected a code point, got \`${typeof codePoint}\`.`);
422
+ }
423
+ }
424
+ function eastAsianWidth(codePoint, { ambiguousAsWide = false } = {}) {
425
+ validate(codePoint);
426
+ if (isFullWidth(codePoint) || isWide(codePoint) || ambiguousAsWide && isAmbiguous(codePoint)) {
427
+ return 2;
428
+ }
429
+ return 1;
430
+ }
431
+ var emoji_regex_default = () => {
432
+ return /[#*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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\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(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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-\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](?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?|[\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(?:\uD83C[\uDFFB-\uDFFF]|\uFE0F)?(?:\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-\uDE89\uDE8F-\uDEC2\uDEC6\uDECE-\uDEDC\uDEDF-\uDEE9]|\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;
433
+ };
434
+ var segmenter = new Intl.Segmenter();
435
+ var defaultIgnorableCodePointRegex = /^\p{Default_Ignorable_Code_Point}$/u;
436
+ function stringWidth(string, options = {}) {
437
+ if (typeof string !== "string" || string.length === 0) {
438
+ return 0;
439
+ }
440
+ const {
441
+ ambiguousIsNarrow = true,
442
+ countAnsiEscapeCodes = false
443
+ } = options;
444
+ if (!countAnsiEscapeCodes) {
445
+ string = stripAnsi(string);
446
+ }
447
+ if (string.length === 0) {
448
+ return 0;
449
+ }
450
+ let width = 0;
451
+ const eastAsianWidthOptions = { ambiguousAsWide: !ambiguousIsNarrow };
452
+ for (const { segment: character } of segmenter.segment(string)) {
453
+ const codePoint = character.codePointAt(0);
454
+ if (codePoint <= 31 || codePoint >= 127 && codePoint <= 159) {
455
+ continue;
456
+ }
457
+ if (codePoint >= 8203 && codePoint <= 8207 || codePoint === 65279) {
458
+ continue;
459
+ }
460
+ if (codePoint >= 768 && codePoint <= 879 || codePoint >= 6832 && codePoint <= 6911 || codePoint >= 7616 && codePoint <= 7679 || codePoint >= 8400 && codePoint <= 8447 || codePoint >= 65056 && codePoint <= 65071) {
461
+ continue;
462
+ }
463
+ if (codePoint >= 55296 && codePoint <= 57343) {
464
+ continue;
465
+ }
466
+ if (codePoint >= 65024 && codePoint <= 65039) {
467
+ continue;
468
+ }
469
+ if (defaultIgnorableCodePointRegex.test(character)) {
470
+ continue;
471
+ }
472
+ if (emoji_regex_default().test(character)) {
473
+ width += 2;
474
+ continue;
475
+ }
476
+ width += eastAsianWidth(codePoint, eastAsianWidthOptions);
477
+ }
478
+ return width;
479
+ }