react-native-builder-bob 0.40.18 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/bin/bob +1 -1
  2. package/lib/package.json +93 -0
  3. package/lib/src/__tests__/babel.test.d.ts +1 -0
  4. package/lib/src/__tests__/babel.test.js +26 -0
  5. package/lib/src/__tests__/babel.test.js.map +1 -0
  6. package/lib/src/__tests__/init.test.d.ts +1 -0
  7. package/lib/src/__tests__/init.test.js +93 -0
  8. package/lib/src/__tests__/init.test.js.map +1 -0
  9. package/lib/src/__tests__/resolveModuleSpecifier.test.d.ts +1 -0
  10. package/lib/src/__tests__/resolveModuleSpecifier.test.js +95 -0
  11. package/lib/src/__tests__/resolveModuleSpecifier.test.js.map +1 -0
  12. package/lib/src/__tests__/typescript-declarations.test.d.ts +1 -0
  13. package/lib/src/__tests__/typescript-declarations.test.js +193 -0
  14. package/lib/src/__tests__/typescript-declarations.test.js.map +1 -0
  15. package/lib/src/__tests__/typescript.test.d.ts +1 -0
  16. package/lib/src/__tests__/typescript.test.js +243 -0
  17. package/lib/src/__tests__/typescript.test.js.map +1 -0
  18. package/lib/src/__tests__/updateSourceMap.test.d.ts +1 -0
  19. package/lib/src/__tests__/updateSourceMap.test.js +84 -0
  20. package/lib/src/__tests__/updateSourceMap.test.js.map +1 -0
  21. package/lib/src/babel.d.ts +19 -0
  22. package/lib/src/babel.js +58 -0
  23. package/lib/src/babel.js.map +1 -0
  24. package/lib/src/build.d.ts +14 -0
  25. package/lib/src/build.js +122 -0
  26. package/lib/src/build.js.map +1 -0
  27. package/lib/src/configs/babel-config.cjs +46 -0
  28. package/lib/src/configs/babel-config.cjs.map +1 -0
  29. package/lib/src/configs/babel-config.d.cts +15 -0
  30. package/lib/src/configs/babel-preset.cjs +66 -0
  31. package/lib/src/configs/babel-preset.cjs.map +1 -0
  32. package/lib/src/configs/babel-preset.d.cts +19 -0
  33. package/lib/src/configs/metro-config.d.mts +4 -0
  34. package/{metro-config.js → lib/src/configs/metro-config.mjs} +3 -7
  35. package/lib/src/configs/metro-config.mjs.map +1 -0
  36. package/lib/src/configs/vite-config.d.mts +2 -0
  37. package/lib/src/configs/vite-config.mjs +59 -0
  38. package/lib/src/configs/vite-config.mjs.map +1 -0
  39. package/lib/src/index.d.ts +1 -0
  40. package/lib/src/index.js +18 -0
  41. package/lib/src/index.js.map +1 -0
  42. package/lib/src/init.d.ts +1 -0
  43. package/lib/src/init.js +370 -0
  44. package/lib/src/init.js.map +1 -0
  45. package/lib/src/schema.d.ts +70 -0
  46. package/lib/src/schema.js +45 -0
  47. package/lib/src/schema.js.map +1 -0
  48. package/lib/src/targets/codegen/index.d.ts +4 -0
  49. package/lib/src/targets/codegen/index.js +54 -0
  50. package/lib/src/targets/codegen/index.js.map +1 -0
  51. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.d.ts +11 -0
  52. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js +63 -0
  53. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.js.map +1 -0
  54. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.d.ts +1 -0
  55. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js +103 -0
  56. package/lib/src/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +1 -0
  57. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.d.ts +16 -0
  58. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js +59 -0
  59. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.js.map +1 -0
  60. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.d.ts +1 -0
  61. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js +75 -0
  62. package/lib/src/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +1 -0
  63. package/lib/src/targets/commonjs.d.ts +9 -0
  64. package/lib/src/targets/commonjs.js +19 -0
  65. package/lib/src/targets/commonjs.js.map +1 -0
  66. package/lib/src/targets/custom.d.ts +9 -0
  67. package/lib/src/targets/custom.js +30 -0
  68. package/lib/src/targets/custom.js.map +1 -0
  69. package/lib/src/targets/module.d.ts +9 -0
  70. package/lib/src/targets/module.js +19 -0
  71. package/lib/src/targets/module.js.map +1 -0
  72. package/lib/src/targets/typescript.d.ts +12 -0
  73. package/lib/src/targets/typescript.js +387 -0
  74. package/lib/src/targets/typescript.js.map +1 -0
  75. package/lib/src/types.d.ts +24 -0
  76. package/lib/src/types.js +2 -0
  77. package/lib/src/types.js.map +1 -0
  78. package/lib/src/utils/androidAssemble.d.ts +8 -0
  79. package/lib/src/utils/androidAssemble.js +17 -0
  80. package/lib/src/utils/androidAssemble.js.map +1 -0
  81. package/lib/src/utils/compile.d.ts +16 -0
  82. package/lib/src/utils/compile.js +211 -0
  83. package/lib/src/utils/compile.js.map +1 -0
  84. package/lib/src/utils/isCodegenSpec.d.ts +1 -0
  85. package/lib/src/utils/isCodegenSpec.js +14 -0
  86. package/lib/src/utils/isCodegenSpec.js.map +1 -0
  87. package/lib/src/utils/isGitDirty.d.ts +1 -0
  88. package/lib/src/utils/isGitDirty.js +14 -0
  89. package/lib/src/utils/isGitDirty.js.map +1 -0
  90. package/lib/src/utils/loadConfig.d.ts +4 -0
  91. package/lib/src/utils/loadConfig.js +59 -0
  92. package/lib/src/utils/loadConfig.js.map +1 -0
  93. package/lib/src/utils/logger.d.ts +10 -0
  94. package/lib/src/utils/logger.js +30 -0
  95. package/lib/src/utils/logger.js.map +1 -0
  96. package/lib/src/utils/prompts.d.ts +3 -0
  97. package/lib/src/utils/prompts.js +10 -0
  98. package/lib/src/utils/prompts.js.map +1 -0
  99. package/lib/src/utils/resolveModuleSpecifier.d.ts +21 -0
  100. package/lib/src/utils/resolveModuleSpecifier.js +57 -0
  101. package/lib/src/utils/resolveModuleSpecifier.js.map +1 -0
  102. package/lib/src/utils/spawn.d.ts +2 -0
  103. package/lib/src/utils/spawn.js +41 -0
  104. package/lib/src/utils/spawn.js.map +1 -0
  105. package/lib/src/utils/updateSourceMap.d.ts +11 -0
  106. package/lib/src/utils/updateSourceMap.js +56 -0
  107. package/lib/src/utils/updateSourceMap.js.map +1 -0
  108. package/lib/src/utils/workerize.d.ts +15 -0
  109. package/lib/src/utils/workerize.js +75 -0
  110. package/lib/src/utils/workerize.js.map +1 -0
  111. package/package.json +49 -42
  112. package/babel-config.js +0 -55
  113. package/babel-preset.js +0 -71
  114. package/lib/__fixtures__/project/MyNativeComponent.js +0 -8
  115. package/lib/__fixtures__/project/MyNativeComponent.js.map +0 -1
  116. package/lib/__fixtures__/project/NativeMyLib.js +0 -2
  117. package/lib/__fixtures__/project/NativeMyLib.js.map +0 -1
  118. package/lib/__fixtures__/project/code/$exports-input.js +0 -122
  119. package/lib/__fixtures__/project/code/$exports-input.js.map +0 -1
  120. package/lib/__fixtures__/project/code/$exports-output.js +0 -122
  121. package/lib/__fixtures__/project/code/$exports-output.js.map +0 -1
  122. package/lib/__fixtures__/project/code/$imports-input.js +0 -24
  123. package/lib/__fixtures__/project/code/$imports-input.js.map +0 -1
  124. package/lib/__fixtures__/project/code/$imports-output.js +0 -20
  125. package/lib/__fixtures__/project/code/$imports-output.js.map +0 -1
  126. package/lib/__fixtures__/project/code/MyNativeComponent.js +0 -8
  127. package/lib/__fixtures__/project/code/MyNativeComponent.js.map +0 -1
  128. package/lib/__fixtures__/project/code/NativeMyLib.js +0 -2
  129. package/lib/__fixtures__/project/code/NativeMyLib.js.map +0 -1
  130. package/lib/__fixtures__/project/code/a.js +0 -2
  131. package/lib/__fixtures__/project/code/a.js.map +0 -1
  132. package/lib/__fixtures__/project/code/b.js +0 -2
  133. package/lib/__fixtures__/project/code/b.js.map +0 -1
  134. package/lib/__fixtures__/project/code/e.story.js +0 -2
  135. package/lib/__fixtures__/project/code/e.story.js.map +0 -1
  136. package/lib/__fixtures__/project/f.js +0 -2
  137. package/lib/__fixtures__/project/f.js.map +0 -1
  138. package/lib/__fixtures__/project/index.js +0 -2
  139. package/lib/__fixtures__/project/index.js.map +0 -1
  140. package/lib/__tests__/babel.test.js +0 -28
  141. package/lib/__tests__/babel.test.js.map +0 -1
  142. package/lib/__tests__/init.test.js +0 -93
  143. package/lib/__tests__/init.test.js.map +0 -1
  144. package/lib/babel.js +0 -92
  145. package/lib/babel.js.map +0 -1
  146. package/lib/build.js +0 -142
  147. package/lib/build.js.map +0 -1
  148. package/lib/index.js +0 -16
  149. package/lib/index.js.map +0 -1
  150. package/lib/init.js +0 -371
  151. package/lib/init.js.map +0 -1
  152. package/lib/schema.js +0 -49
  153. package/lib/schema.js.map +0 -1
  154. package/lib/targets/codegen/index.js +0 -60
  155. package/lib/targets/codegen/index.js.map +0 -1
  156. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js +0 -74
  157. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.js.map +0 -1
  158. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js +0 -106
  159. package/lib/targets/codegen/patches/patchCodegenAndroidPackage.test.js.map +0 -1
  160. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js +0 -57
  161. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.js.map +0 -1
  162. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js +0 -78
  163. package/lib/targets/codegen/patches/removeCodegenAppLevelCode.test.js.map +0 -1
  164. package/lib/targets/commonjs.js +0 -34
  165. package/lib/targets/commonjs.js.map +0 -1
  166. package/lib/targets/custom.js +0 -40
  167. package/lib/targets/custom.js.map +0 -1
  168. package/lib/targets/module.js +0 -34
  169. package/lib/targets/module.js.map +0 -1
  170. package/lib/targets/typescript.js +0 -219
  171. package/lib/targets/typescript.js.map +0 -1
  172. package/lib/types.js +0 -6
  173. package/lib/types.js.map +0 -1
  174. package/lib/utils/androidAssemble.js +0 -29
  175. package/lib/utils/androidAssemble.js.map +0 -1
  176. package/lib/utils/compile.js +0 -218
  177. package/lib/utils/compile.js.map +0 -1
  178. package/lib/utils/isCodegenSpec.js +0 -22
  179. package/lib/utils/isCodegenSpec.js.map +0 -1
  180. package/lib/utils/loadConfig.js +0 -56
  181. package/lib/utils/loadConfig.js.map +0 -1
  182. package/lib/utils/logger.js +0 -35
  183. package/lib/utils/logger.js.map +0 -1
  184. package/lib/utils/prompts.js +0 -17
  185. package/lib/utils/prompts.js.map +0 -1
  186. package/lib/utils/spawn.js +0 -48
  187. package/lib/utils/spawn.js.map +0 -1
  188. package/lib/utils/workerize.js +0 -102
  189. package/lib/utils/workerize.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../src/targets/custom.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAS1C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAW;IAC3E,IAAI,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,6DAA6D,KAAK,CAAC,KAAK,CACtE,4CAA4C,CAC7C,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK;QAC/B,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC;QACpC,CAAC,CAAC,SAAS,CAAC;IAEd,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,eAAe,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEtD,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,KAAK,CAAC;IACnE,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAEnD,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IACnE,MAAM,CAAC,IAAI,CACT,WAAW,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,KAAK,CAAC,IAAI,CACrD,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAC7B,EAAE,CACJ,CAAC;IAEF,MAAM,KAAK,CAAC,wBAAwB,EAAE,kBAAkB,EAAE;QACxD,KAAK,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,CAAC,OAAO,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE3E,IAAI,OAAO,CAAC,KAAK,IAAI,WAAW,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACxE,MAAM,CAAC,IAAI,CACT,0BAA0B,KAAK,CAAC,IAAI,CAClC,OAAO,CAAC,MAAM,CACf,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,IAAI,CAC5D,OAAO,CACR,kGAAkG,KAAK,CAAC,IAAI,CAC3G,OAAO,CACR,kBAAkB,CACpB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { Input, Variants } from '../types.ts';
2
+ import { type CompileOptions } from '../utils/compile.ts';
3
+ type Options = Input & {
4
+ options?: CompileOptions;
5
+ variants: Variants;
6
+ exclude: string;
7
+ };
8
+ export default function build({ root, source, output, exclude, options, variants, report, }: Options): Promise<void>;
9
+ export {};
@@ -0,0 +1,19 @@
1
+ import path from 'node:path';
2
+ import { deleteAsync } from 'del';
3
+ import kleur from 'kleur';
4
+ import compile, {} from "../utils/compile.js";
5
+ export default async function build({ root, source, output, exclude, options, variants, report, }) {
6
+ report.info(`Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`);
7
+ await deleteAsync([output]);
8
+ await compile({
9
+ ...options,
10
+ variants,
11
+ root,
12
+ source,
13
+ output,
14
+ exclude,
15
+ modules: 'preserve',
16
+ report,
17
+ });
18
+ }
19
+ //# sourceMappingURL=module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../../src/targets/module.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,OAAO,EAAE,EAAuB,MAAM,qBAAqB,CAAC;AAQnE,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,EAClC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,OAAO,EACP,QAAQ,EACR,MAAM,GACE;IACR,MAAM,CAAC,IAAI,CACT,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAC3E,CAAC;IAEF,MAAM,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5B,MAAM,OAAO,CAAC;QACZ,GAAG,OAAO;QACV,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,OAAO;QACP,OAAO,EAAE,UAAU;QACnB,MAAM;KACP,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Input, Variants } from '../types.ts';
2
+ type Options = Input & {
3
+ options?: {
4
+ project?: string;
5
+ tsc?: string;
6
+ };
7
+ esm: boolean;
8
+ variants: Variants;
9
+ };
10
+ export declare function findBinInAncestorNodeModules(root: string, binary: string, limit: string): Promise<string | undefined>;
11
+ export default function build({ source, root, output, report, options, variants, esm, }: Options): Promise<void>;
12
+ export {};
@@ -0,0 +1,387 @@
1
+ import { platform } from 'node:os';
2
+ import path from 'node:path';
3
+ import { deleteAsync } from 'del';
4
+ import fs from 'fs-extra';
5
+ import { glob } from 'glob';
6
+ import JSON5 from 'json5';
7
+ import kleur from 'kleur';
8
+ import ts from 'typescript';
9
+ import which from 'which';
10
+ import { isCodegenSpec } from "../utils/isCodegenSpec.js";
11
+ import { resolveModuleSpecifier, SOURCE_EXTENSIONS, } from "../utils/resolveModuleSpecifier.js";
12
+ import { spawn } from "../utils/spawn.js";
13
+ import { updateSourceMap } from "../utils/updateSourceMap.js";
14
+ const LOCKFILES = [
15
+ 'bun.lock',
16
+ 'bun.lockb',
17
+ 'package-lock.json',
18
+ 'pnpm-lock.yaml',
19
+ 'yarn.lock',
20
+ ];
21
+ const DECLARATION_EXTENSIONS = [{ source: 'd.ts', output: 'js' }];
22
+ const EXPLICIT_SOURCE_EXTENSIONS = ['ts', 'tsx'].map((source) => ({
23
+ source,
24
+ emitted: DECLARATION_EXTENSIONS,
25
+ }));
26
+ const DECLARATION_REWRITE_BATCH_SIZE = 32;
27
+ function isPathInside(root, file) {
28
+ const relative = path.relative(root, file);
29
+ const isOutside = relative === '..' || relative.startsWith(`..${path.sep}`);
30
+ return relative === '' || (!isOutside && !path.isAbsolute(relative));
31
+ }
32
+ async function findWorkspaceRoot(root) {
33
+ let current = root;
34
+ while (true) {
35
+ for (const lockfile of LOCKFILES) {
36
+ if (await fs.pathExists(path.join(current, lockfile))) {
37
+ return current;
38
+ }
39
+ }
40
+ const parent = path.dirname(current);
41
+ if (parent === current) {
42
+ return root;
43
+ }
44
+ current = parent;
45
+ }
46
+ }
47
+ export async function findBinInAncestorNodeModules(root, binary, limit) {
48
+ let current = root;
49
+ while (true) {
50
+ const candidate = path.resolve(current, 'node_modules', '.bin', binary);
51
+ if (await fs.pathExists(candidate)) {
52
+ return candidate;
53
+ }
54
+ if (current === limit) {
55
+ return undefined;
56
+ }
57
+ const parent = path.dirname(current);
58
+ if (parent === current) {
59
+ return undefined;
60
+ }
61
+ current = parent;
62
+ }
63
+ }
64
+ const getModuleSpecifier = (node) => {
65
+ if ((ts.isImportDeclaration(node) || ts.isExportDeclaration(node)) &&
66
+ node.moduleSpecifier &&
67
+ ts.isStringLiteral(node.moduleSpecifier)) {
68
+ return node.moduleSpecifier;
69
+ }
70
+ if (ts.isImportTypeNode(node) &&
71
+ ts.isLiteralTypeNode(node.argument) &&
72
+ ts.isStringLiteral(node.argument.literal)) {
73
+ return node.argument.literal;
74
+ }
75
+ return undefined;
76
+ };
77
+ const rewriteDeclarationImports = async (output, source, root, codegenEnabled) => {
78
+ const isCodegenImport = (filepath, specifier) => {
79
+ if (!codegenEnabled || !specifier.startsWith('.')) {
80
+ return false;
81
+ }
82
+ // The declaration output mirrors the source tree, so map the import back to the source file
83
+ const target = path.resolve(path.dirname(filepath), specifier);
84
+ const relative = path.relative(output, target);
85
+ // The tree root depends on tsc's inferred `rootDir`, so check both the project and source roots
86
+ return [root, source].some((base) => {
87
+ const candidate = path.join(base, relative);
88
+ return (isCodegenSpec(candidate) ||
89
+ SOURCE_EXTENSIONS.some((ext) => isCodegenSpec(`${candidate}.${ext}`)));
90
+ });
91
+ };
92
+ const files = await glob('**/*.d.ts', {
93
+ cwd: output,
94
+ absolute: true,
95
+ nodir: true,
96
+ });
97
+ // Process files in chunks to avoid firing read/writes for each file at once
98
+ for (let i = 0; i < files.length; i += DECLARATION_REWRITE_BATCH_SIZE) {
99
+ const promises = files
100
+ .slice(i, i + DECLARATION_REWRITE_BATCH_SIZE)
101
+ .map(async (filepath) => {
102
+ const code = await fs.readFile(filepath, 'utf-8');
103
+ const sourceFile = ts.createSourceFile(filepath, code, ts.ScriptTarget.Latest, true);
104
+ // Collect text changes before writing the file.
105
+ const replacements = [];
106
+ const addReplacement = (node) => {
107
+ // Rewrite the module path if it points to an emitted file.
108
+ // Only replace the text inside quotes to preserve the rest of tsc's output.
109
+ const value = resolveModuleSpecifier({
110
+ filepath,
111
+ specifier: node.text,
112
+ extensions: DECLARATION_EXTENSIONS,
113
+ explicitExtensions: EXPLICIT_SOURCE_EXTENSIONS,
114
+ });
115
+ if (value !== node.text) {
116
+ replacements.push({
117
+ start: node.getStart(sourceFile) + 1,
118
+ end: node.getEnd() - 1,
119
+ value,
120
+ });
121
+ }
122
+ };
123
+ const visit = (node) => {
124
+ // Find module paths in this node.
125
+ // Cover static imports/exports and import() types.
126
+ const specifier = getModuleSpecifier(node);
127
+ if (specifier && !isCodegenImport(filepath, specifier.text)) {
128
+ addReplacement(specifier);
129
+ }
130
+ ts.forEachChild(node, visit);
131
+ };
132
+ visit(sourceFile);
133
+ if (replacements.length) {
134
+ // Keep the source map in sync with the changed declaration file.
135
+ const sourceMapPath = `${filepath}.map`;
136
+ if (await fs.pathExists(sourceMapPath)) {
137
+ await updateSourceMap({
138
+ filepath: sourceMapPath,
139
+ replacements,
140
+ sourceFile,
141
+ });
142
+ }
143
+ // Write the declaration file with the new module paths.
144
+ await fs.writeFile(filepath, replacements
145
+ // Apply edits from the end so earlier offsets stay valid.
146
+ .sort((a, b) => b.start - a.start)
147
+ .reduce((result, replacement) => result.slice(0, replacement.start) +
148
+ replacement.value +
149
+ result.slice(replacement.end), code));
150
+ }
151
+ });
152
+ await Promise.all(promises);
153
+ }
154
+ };
155
+ export default async function build({ source, root, output, report, options, variants, esm, }) {
156
+ report.info(`Cleaning up previous build at ${kleur.blue(path.relative(root, output))}`);
157
+ await deleteAsync([output]);
158
+ report.info(`Generating type definitions with ${kleur.blue('tsc')}`);
159
+ const project = options?.project ? options.project : 'tsconfig.json';
160
+ const tsconfig = path.join(root, project);
161
+ try {
162
+ if (await fs.pathExists(tsconfig)) {
163
+ try {
164
+ const config = JSON5.parse(await fs.readFile(tsconfig, 'utf-8'));
165
+ if (config.compilerOptions) {
166
+ const conflicts = [];
167
+ if (config.compilerOptions.declarationDir) {
168
+ conflicts.push('compilerOptions.declarationDir');
169
+ }
170
+ if (config.compilerOptions.outDir &&
171
+ path.join(root, config.compilerOptions.outDir) !== output) {
172
+ conflicts.push('compilerOptions.outDir');
173
+ }
174
+ if (conflicts.length) {
175
+ report.warn(`Found following options in the config file which can conflict with the CLI options. Please remove them from ${kleur.blue(project)}:${conflicts.reduce((acc, curr) => acc + `\n${kleur.gray('-')} ${kleur.yellow(curr)}`, '')}`);
176
+ }
177
+ }
178
+ }
179
+ catch (e) {
180
+ report.warn(`Couldn't parse ${kleur.blue(project)}. There might be validation errors.`);
181
+ }
182
+ }
183
+ else {
184
+ throw new Error(`Couldn't find a ${kleur.blue(project)} in the project root.`);
185
+ }
186
+ let tsc;
187
+ if (options?.tsc) {
188
+ tsc = path.resolve(root, options.tsc);
189
+ if (!(await fs.pathExists(tsc))) {
190
+ throw new Error(`The ${kleur.blue('tsc')} binary doesn't seem to be installed at ${kleur.blue(tsc)}. Please specify the correct path in options or remove it to use the workspace's version.`);
191
+ }
192
+ }
193
+ else {
194
+ const binary = platform() === 'win32' ? 'tsc.cmd' : 'tsc';
195
+ tsc = path.resolve(root, 'node_modules', '.bin', binary);
196
+ if (!(await fs.pathExists(tsc))) {
197
+ tsc = await which(binary, { nothrow: true });
198
+ }
199
+ let workspaceRoot;
200
+ if (tsc != null && !isPathInside(root, tsc)) {
201
+ workspaceRoot = await findWorkspaceRoot(root);
202
+ if (!isPathInside(workspaceRoot, tsc)) {
203
+ report.warn(`Found ${kleur.blue('tsc')} in ${kleur.blue('PATH')} at ${kleur.blue(tsc)}, but it is outside the workspace root at ${kleur.blue(workspaceRoot)}. Consider adding ${kleur.blue('typescript')} to your ${kleur.blue('devDependencies')} or specifying the ${kleur.blue('tsc')} option for the typescript target.`);
204
+ }
205
+ }
206
+ if (tsc == null) {
207
+ workspaceRoot ??= await findWorkspaceRoot(root);
208
+ tsc = await findBinInAncestorNodeModules(root, binary, workspaceRoot);
209
+ }
210
+ }
211
+ if (tsc == null || !(await fs.pathExists(tsc))) {
212
+ throw new Error(`The ${kleur.blue('tsc')} binary doesn't seem to be installed under ${kleur.blue('node_modules')} or present in $PATH. Make sure you have added ${kleur.blue('typescript')} to your ${kleur.blue('devDependencies')} or specify the ${kleur.blue('tsc')} option for typescript.`);
213
+ }
214
+ const outputs = {};
215
+ if (esm && variants.commonjs && variants.module) {
216
+ outputs.commonjs = path.join(output, 'commonjs');
217
+ outputs.module = path.join(output, 'module');
218
+ }
219
+ else if (variants.commonjs) {
220
+ outputs.commonjs = output;
221
+ }
222
+ else {
223
+ outputs.module = output;
224
+ }
225
+ const outDir = outputs.commonjs ?? outputs.module;
226
+ if (outDir == null) {
227
+ throw new Error('Neither commonjs nor module output is enabled.');
228
+ }
229
+ const tsbuildinfo = path.join(outDir, project.replace(/\.json$/, '.tsbuildinfo'));
230
+ try {
231
+ await deleteAsync([tsbuildinfo]);
232
+ }
233
+ catch (e) {
234
+ // Ignore
235
+ }
236
+ await spawn(tsc, [
237
+ '--pretty',
238
+ '--declaration',
239
+ '--declarationMap',
240
+ '--noEmit',
241
+ 'false',
242
+ '--emitDeclarationOnly',
243
+ '--project',
244
+ project,
245
+ '--outDir',
246
+ outDir,
247
+ ], { cwd: root });
248
+ try {
249
+ await deleteAsync([tsbuildinfo]);
250
+ }
251
+ catch (e) {
252
+ // Ignore
253
+ }
254
+ const pkg = JSON.parse(await fs.readFile(path.join(root, 'package.json'), 'utf-8'));
255
+ const codegenEnabled = 'codegenConfig' in pkg;
256
+ if (esm) {
257
+ if (outputs?.commonjs && outputs?.module) {
258
+ // When ESM compatible output is enabled and commonjs build is present, we need to generate 2 builds for commonjs and esm
259
+ // In this case we copy the already generated types, and add `package.json` with `type` field
260
+ await fs.copy(outputs.commonjs, outputs.module);
261
+ await fs.writeJSON(path.join(outputs.commonjs, 'package.json'), {
262
+ type: 'commonjs',
263
+ });
264
+ await fs.writeJSON(path.join(outputs.module, 'package.json'), {
265
+ type: 'module',
266
+ });
267
+ }
268
+ else if (outputs?.commonjs) {
269
+ await fs.writeJSON(path.join(outputs.commonjs, 'package.json'), {
270
+ type: 'commonjs',
271
+ });
272
+ }
273
+ else if (outputs?.module) {
274
+ await fs.writeJSON(path.join(outputs.module, 'package.json'), {
275
+ type: 'module',
276
+ });
277
+ }
278
+ if (outputs.module) {
279
+ await rewriteDeclarationImports(outputs.module, source, root, codegenEnabled);
280
+ }
281
+ }
282
+ report.success(`Wrote definition files to ${kleur.blue(path.relative(root, output))}`);
283
+ const fields = [
284
+ {
285
+ name: 'types',
286
+ value: pkg.types,
287
+ output: outputs.commonjs,
288
+ error: false,
289
+ message: undefined,
290
+ },
291
+ ...(pkg.exports?.['.']?.types
292
+ ? [
293
+ {
294
+ name: "exports['.'].types",
295
+ value: pkg.exports?.['.']?.types,
296
+ output: outDir,
297
+ error: Boolean(pkg.exports?.['.']?.import && pkg.exports?.['.']?.require),
298
+ message: `using ${kleur.blue("exports['.'].import")} and ${kleur.blue("exports['.'].require")}. Specify ${kleur.blue("exports['.'].import.types")} and ${kleur.blue("exports['.'].require.types")} instead.`,
299
+ },
300
+ ]
301
+ : []),
302
+ {
303
+ name: "exports['.'].import.types",
304
+ value: pkg.exports?.['.']?.import?.types,
305
+ output: outputs.module,
306
+ error: !esm,
307
+ message: `the ${kleur.blue('esm')} option is not enabled for the ${kleur.blue('module')} target`,
308
+ },
309
+ {
310
+ name: "exports['.'].require.types",
311
+ value: pkg.exports?.['.']?.require?.types,
312
+ output: outputs.commonjs,
313
+ error: false,
314
+ message: undefined,
315
+ },
316
+ ];
317
+ const getGeneratedTypesPath = async (field) => {
318
+ if (!field.output || field.error) {
319
+ return null;
320
+ }
321
+ if (pkg.source) {
322
+ const indexDTsName = path.basename(pkg.source).replace(/\.(jsx?|tsx?)$/, '') + '.d.ts';
323
+ const potentialPaths = [
324
+ path.join(field.output, path.dirname(pkg.source), indexDTsName),
325
+ path.join(field.output, path.relative(source, path.join(root, path.dirname(pkg.source))), indexDTsName),
326
+ ];
327
+ for (const potentialPath of potentialPaths) {
328
+ if (await fs.pathExists(potentialPath)) {
329
+ return path.relative(root, potentialPath);
330
+ }
331
+ }
332
+ }
333
+ return null;
334
+ };
335
+ const invalidFieldNames = (await Promise.all(fields.map(async (field) => {
336
+ if (field.error) {
337
+ if (field.value) {
338
+ report.warn(`The ${kleur.blue(field.name)} field in ${kleur.blue(`package.json`)} should not be set when ${String(field.message)}.`);
339
+ }
340
+ return null;
341
+ }
342
+ if (field.name.startsWith('exports') &&
343
+ field.value &&
344
+ !/^\.\//.test(field.value)) {
345
+ report.error(`The ${kleur.blue(field.name)} field in ${kleur.blue(`package.json`)} should be a relative path starting with ${kleur.blue('./')}. Found: ${kleur.blue(field.value)}`);
346
+ return field.name;
347
+ }
348
+ if (field.value &&
349
+ !(await fs.pathExists(path.join(root, field.value)))) {
350
+ const generatedTypesPath = await getGeneratedTypesPath(field);
351
+ report.error(`The ${kleur.blue(field.name)} field in ${kleur.blue('package.json')} points to a non-existent file: ${kleur.blue(field.value)}.\nVerify the path points to the correct file under ${kleur.blue(path.relative(root, output))}${generatedTypesPath
352
+ ? ` (found ${kleur.blue(generatedTypesPath)}).`
353
+ : '.'}`);
354
+ return field.name;
355
+ }
356
+ return null;
357
+ }))).filter((name) => name != null);
358
+ if (invalidFieldNames.length) {
359
+ throw new Error(`Found errors for fields: ${invalidFieldNames.join(', ')}.`);
360
+ }
361
+ const validFields = fields.filter((field) => !field.error);
362
+ if (validFields.every((field) => field.value == null)) {
363
+ const suggestedTypesPaths = (await Promise.all(validFields.map(async (field) => getGeneratedTypesPath(field))))
364
+ .filter((path) => path != null)
365
+ .filter((path, i, self) => self.indexOf(path) === i);
366
+ report.warn(`No ${validFields
367
+ .map((field) => kleur.blue(field.name))
368
+ .join(' or ')} field found in ${kleur.blue('package.json')}. Consider ${suggestedTypesPaths.length
369
+ ? `pointing to ${suggestedTypesPaths
370
+ .map((path) => kleur.blue(path))
371
+ .join(' or ')}`
372
+ : `adding ${validFields.length > 1 ? 'them' : 'it'}`} so that consumers of your package can use the typescript definitions.`);
373
+ }
374
+ }
375
+ catch (e) {
376
+ if (e != null && typeof e === 'object') {
377
+ if ('stdout' in e && e.stdout != null) {
378
+ report.error(`Errors found when building definition files:\n${e.stdout.toString()}`);
379
+ }
380
+ else if ('message' in e && typeof e.message === 'string') {
381
+ report.error(e.message);
382
+ }
383
+ }
384
+ throw new Error('Failed to build definition files.', { cause: e });
385
+ }
386
+ }
387
+ //# sourceMappingURL=typescript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typescript.js","sourceRoot":"","sources":["../../../src/targets/typescript.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,iBAAiB,GAClB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAoB,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAmBhF,MAAM,SAAS,GAAG;IAChB,UAAU;IACV,WAAW;IACX,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;CACZ,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAElE,MAAM,0BAA0B,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAChE,MAAM;IACN,OAAO,EAAE,sBAAsB;CAChC,CAAC,CAAC,CAAC;AAEJ,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAE1C,SAAS,YAAY,CAAC,IAAY,EAAE,IAAY;IAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAE5E,OAAO,QAAQ,KAAK,EAAE,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAC3C,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,IAAI,EAAE,CAAC;QACZ,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACtD,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,IAAY,EACZ,MAAc,EACd,KAAa;IAEb,IAAI,OAAO,GAAG,IAAI,CAAC;IAEnB,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAExE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YACnC,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAErC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,IAAa,EAAE,EAAE;IAC3C,IACE,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,eAAe;QACpB,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,EACxC,CAAC;QACD,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED,IACE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;QACzB,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EACzC,CAAC;QACD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;IAC/B,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,yBAAyB,GAAG,KAAK,EACrC,MAAc,EACd,MAAc,EACd,IAAY,EACZ,cAAuB,EACvB,EAAE;IACF,MAAM,eAAe,GAAG,CAAC,QAAgB,EAAE,SAAiB,EAAE,EAAE;QAC9D,IAAI,CAAC,cAAc,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,4FAA4F;QAC5F,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAE/C,gGAAgG;QAChG,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAClC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE5C,OAAO,CACL,aAAa,CAAC,SAAS,CAAC;gBACxB,iBAAiB,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC,CACtE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE;QACpC,GAAG,EAAE,MAAM;QACX,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,IAAI;KACZ,CAAC,CAAC;IAEH,4EAA4E;IAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,8BAA8B,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,KAAK;aACnB,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,8BAA8B,CAAC;aAC5C,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;YACtB,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CACpC,QAAQ,EACR,IAAI,EACJ,EAAE,CAAC,YAAY,CAAC,MAAM,EACtB,IAAI,CACL,CAAC;YAEF,gDAAgD;YAChD,MAAM,YAAY,GAAkB,EAAE,CAAC;YAEvC,MAAM,cAAc,GAAG,CAAC,IAAsB,EAAE,EAAE;gBAChD,2DAA2D;gBAC3D,4EAA4E;gBAC5E,MAAM,KAAK,GAAG,sBAAsB,CAAC;oBACnC,QAAQ;oBACR,SAAS,EAAE,IAAI,CAAC,IAAI;oBACpB,UAAU,EAAE,sBAAsB;oBAClC,kBAAkB,EAAE,0BAA0B;iBAC/C,CAAC,CAAC;gBAEH,IAAI,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;oBACxB,YAAY,CAAC,IAAI,CAAC;wBAChB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC;wBACpC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC;wBACtB,KAAK;qBACN,CAAC,CAAC;gBACL,CAAC;YACH,CAAC,CAAC;YAEF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,EAAE;gBAC9B,kCAAkC;gBAClC,mDAAmD;gBACnD,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;gBAE3C,IAAI,SAAS,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC5D,cAAc,CAAC,SAAS,CAAC,CAAC;gBAC5B,CAAC;gBAED,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC/B,CAAC,CAAC;YAEF,KAAK,CAAC,UAAU,CAAC,CAAC;YAElB,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,iEAAiE;gBACjE,MAAM,aAAa,GAAG,GAAG,QAAQ,MAAM,CAAC;gBAExC,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACvC,MAAM,eAAe,CAAC;wBACpB,QAAQ,EAAE,aAAa;wBACvB,YAAY;wBACZ,UAAU;qBACX,CAAC,CAAC;gBACL,CAAC;gBAED,wDAAwD;gBACxD,MAAM,EAAE,CAAC,SAAS,CAChB,QAAQ,EACR,YAAY;oBACV,0DAA0D;qBACzD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;qBACjC,MAAM,CACL,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,CACtB,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC,KAAK,CAAC;oBAClC,WAAW,CAAC,KAAK;oBACjB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,EAC/B,IAAI,CACL,CACJ,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;QAEL,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,EAClC,MAAM,EACN,IAAI,EACJ,MAAM,EACN,MAAM,EACN,OAAO,EACP,QAAQ,EACR,GAAG,GACK;IACR,MAAM,CAAC,IAAI,CACT,iCAAiC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CAC3E,CAAC;IAEF,MAAM,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,oCAAoC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAErE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1C,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;gBAEjE,IAAI,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;oBAE/B,IAAI,MAAM,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;wBAC1C,SAAS,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;oBACnD,CAAC;oBAED,IACE,MAAM,CAAC,eAAe,CAAC,MAAM;wBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,MAAM,EACzD,CAAC;wBACD,SAAS,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;oBAC3C,CAAC;oBAED,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;wBACrB,MAAM,CAAC,IAAI,CACT,+GAA+G,KAAK,CAAC,IAAI,CACvH,OAAO,CACR,IAAI,SAAS,CAAC,MAAM,CACnB,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACZ,GAAG,GAAG,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EACpD,EAAE,CACH,EAAE,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,IAAI,CACT,kBAAkB,KAAK,CAAC,IAAI,CAC1B,OAAO,CACR,qCAAqC,CACvC,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,mBAAmB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAC9D,CAAC;QACJ,CAAC;QAED,IAAI,GAA8B,CAAC;QAEnC,IAAI,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,CAAC,IAAI,CACf,KAAK,CACN,2CAA2C,KAAK,CAAC,IAAI,CACpD,GAAG,CACJ,2FAA2F,CAC7F,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;YAE1D,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAEzD,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBAChC,GAAG,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC/C,CAAC;YAED,IAAI,aAAiC,CAAC;YAEtC,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC5C,aAAa,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAE9C,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,GAAG,CAAC,EAAE,CAAC;oBACtC,MAAM,CAAC,IAAI,CACT,SAAS,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,IAAI,CACzC,MAAM,CACP,OAAO,KAAK,CAAC,IAAI,CAChB,GAAG,CACJ,6CAA6C,KAAK,CAAC,IAAI,CACtD,aAAa,CACd,qBAAqB,KAAK,CAAC,IAAI,CAC9B,YAAY,CACb,YAAY,KAAK,CAAC,IAAI,CACrB,iBAAiB,CAClB,sBAAsB,KAAK,CAAC,IAAI,CAC/B,KAAK,CACN,oCAAoC,CACtC,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;gBAChB,aAAa,KAAK,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAChD,GAAG,GAAG,MAAM,4BAA4B,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YACxE,CAAC;QACH,CAAC;QAED,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,CAAC,IAAI,CACf,KAAK,CACN,8CAA8C,KAAK,CAAC,IAAI,CACvD,cAAc,CACf,kDAAkD,KAAK,CAAC,IAAI,CAC3D,YAAY,CACb,YAAY,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,KAAK,CAAC,IAAI,CACrE,KAAK,CACN,yBAAyB,CAC3B,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAA2C,EAAE,CAAC;QAE3D,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YAChD,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;QAElD,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAC3B,MAAM,EACN,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,MAAM,KAAK,CACT,GAAG,EACH;YACE,UAAU;YACV,eAAe;YACf,kBAAkB;YAClB,UAAU;YACV,OAAO;YACP,uBAAuB;YACvB,WAAW;YACX,OAAO;YACP,UAAU;YACV,MAAM;SACP,EACD,EAAE,GAAG,EAAE,IAAI,EAAE,CACd,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,SAAS;QACX,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CACpB,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAC5D,CAAC;QAEF,MAAM,cAAc,GAAG,eAAe,IAAI,GAAG,CAAC;QAE9C,IAAI,GAAG,EAAE,CAAC;YACR,IAAI,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACzC,yHAAyH;gBACzH,6FAA6F;gBAC7F,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBAChD,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC9D,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;gBACH,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;oBAC5D,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAC7B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,cAAc,CAAC,EAAE;oBAC9D,IAAI,EAAE,UAAU;iBACjB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE;oBAC5D,IAAI,EAAE,QAAQ;iBACf,CAAC,CAAC;YACL,CAAC;YAED,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,MAAM,yBAAyB,CAC7B,OAAO,CAAC,MAAM,EACd,MAAM,EACN,IAAI,EACJ,cAAc,CACf,CAAC;YACJ,CAAC;QACH,CAAC;QAED,MAAM,CAAC,OAAO,CACZ,6BAA6B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EAAE,CACvE,CAAC;QAEF,MAAM,MAAM,GAAY;YACtB;gBACE,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,MAAM,EAAE,OAAO,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,SAAS;aACnB;YACD,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK;gBAC3B,CAAC,CAAC;oBACE;wBACE,IAAI,EAAE,oBAAoB;wBAC1B,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK;wBAChC,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,OAAO,CACZ,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAC1D;wBACD,OAAO,EAAE,UAAU,KAAK,CAAC,IAAI,CAC3B,qBAAqB,CACtB,QAAQ,KAAK,CAAC,IAAI,CACjB,sBAAsB,CACvB,aAAa,KAAK,CAAC,IAAI,CACtB,2BAA2B,CAC5B,QAAQ,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,WAAW;qBAC7D;iBACF;gBACH,CAAC,CAAC,EAAE,CAAC;YACP;gBACE,IAAI,EAAE,2BAA2B;gBACjC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK;gBACxC,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,KAAK,EAAE,CAAC,GAAG;gBACX,OAAO,EAAE,OAAO,KAAK,CAAC,IAAI,CACxB,KAAK,CACN,kCAAkC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS;aACjE;YACD;gBACE,IAAI,EAAE,4BAA4B;gBAClC,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,KAAK;gBACzC,MAAM,EAAE,OAAO,CAAC,QAAQ;gBACxB,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,SAAS;aACnB;SACF,CAAC;QAEF,MAAM,qBAAqB,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE;YACnD,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBACjC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBACf,MAAM,YAAY,GAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,OAAO,CAAC;gBAEpE,MAAM,cAAc,GAAG;oBACrB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC;oBAC/D,IAAI,CAAC,IAAI,CACP,KAAK,CAAC,MAAM,EACZ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAChE,YAAY,CACb;iBACF,CAAC;gBAEF,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;oBAC3C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;wBACvC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;oBAC5C,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,iBAAiB,GAAG,CACxB,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACzB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAChB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAChB,MAAM,CAAC,IAAI,CACT,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAClD,cAAc,CACf,2BAA2B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CACrD,CAAC;gBACJ,CAAC;gBAED,OAAO,IAAI,CAAC;YACd,CAAC;YAED,IACE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;gBAChC,KAAK,CAAC,KAAK;gBACX,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAC1B,CAAC;gBACD,MAAM,CAAC,KAAK,CACV,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAClD,cAAc,CACf,4CAA4C,KAAK,CAAC,IAAI,CACrD,IAAI,CACL,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CACvC,CAAC;gBAEF,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;YAED,IACE,KAAK,CAAC,KAAK;gBACX,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EACpD,CAAC;gBACD,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CAAC,KAAK,CAAC,CAAC;gBAE9D,MAAM,CAAC,KAAK,CACV,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC,IAAI,CAClD,cAAc,CACf,mCAAmC,KAAK,CAAC,IAAI,CAC5C,KAAK,CAAC,KAAK,CACZ,uDAAuD,KAAK,CAAC,IAAI,CAChE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAC5B,GACC,kBAAkB;oBAChB,CAAC,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI;oBAC/C,CAAC,CAAC,GACN,EAAE,CACH,CAAC;gBAEF,OAAO,KAAK,CAAC,IAAI,CAAC;YACpB,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CACH,CACF,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAEjD,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,4BAA4B,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAC5D,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE3D,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC;YACtD,MAAM,mBAAmB,GAAG,CAC1B,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAC/D,CACF;iBACE,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC;iBAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAEvD,MAAM,CAAC,IAAI,CACT,MAAM,WAAW;iBACd,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACtC,IAAI,CAAC,MAAM,CAAC,mBAAmB,KAAK,CAAC,IAAI,CAC1C,cAAc,CACf,cACC,mBAAmB,CAAC,MAAM;gBACxB,CAAC,CAAC,eAAe,mBAAmB;qBAC/B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;qBAC/B,IAAI,CAAC,MAAM,CAAC,EAAE;gBACnB,CAAC,CAAC,UAAU,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACtD,wEAAwE,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,CAAU,EAAE,CAAC;QACpB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;gBACtC,MAAM,CAAC,KAAK,CACV,iDAAiD,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CACvE,CAAC;YACJ,CAAC;iBAAM,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;gBAC3D,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,mCAAmC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;AACH,CAAC"}
@@ -0,0 +1,24 @@
1
+ export type Log = (message: string) => void;
2
+ export type Report = {
3
+ info: Log;
4
+ warn: Log;
5
+ success: Log;
6
+ error: Log;
7
+ };
8
+ export type Input = {
9
+ root: string;
10
+ source: string;
11
+ output: string;
12
+ report: Report;
13
+ };
14
+ export type Variants = {
15
+ commonjs?: boolean;
16
+ module?: boolean;
17
+ };
18
+ declare module '@babel/core' {
19
+ interface TransformCaller {
20
+ rewriteImportExtensions: boolean;
21
+ jsxRuntime: 'automatic' | 'classic';
22
+ codegenEnabled: boolean;
23
+ }
24
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,8 @@
1
+ import type { Report } from '../types.ts';
2
+ type Options = {
3
+ root: string;
4
+ androidPath: string;
5
+ report: Report;
6
+ };
7
+ export default function androidAssemble({ root, androidPath, report, }: Options): Promise<void>;
8
+ export {};
@@ -0,0 +1,17 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { platform } from 'node:os';
3
+ import path from 'node:path';
4
+ import kleur from 'kleur';
5
+ import fs from 'fs-extra';
6
+ export default async function androidAssemble({ root, androidPath, report, }) {
7
+ const cwd = path.relative(root, androidPath);
8
+ report.info(`Assembling Android project in ${kleur.blue(cwd)} with ${kleur.blue('gradle')}`);
9
+ const gradleWrapper = platform() === 'win32' ? 'gradlew.bat' : './gradlew';
10
+ if (await fs.pathExists(path.join(androidPath, gradleWrapper))) {
11
+ execFileSync(gradleWrapper, ['assemble'], { cwd: androidPath });
12
+ }
13
+ else {
14
+ throw new Error(`The ${kleur.blue('gradlew')} script doesn't seem to present in ${kleur.blue(androidPath)}. Make sure you have added it by running ${kleur.blue('gradle wrapper')} in that directory.`);
15
+ }
16
+ }
17
+ //# sourceMappingURL=androidAssemble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"androidAssemble.js","sourceRoot":"","sources":["../../../src/utils/androidAssemble.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAS1B,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAAC,EAC5C,IAAI,EACJ,WAAW,EACX,MAAM,GACE;IACR,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAE7C,MAAM,CAAC,IAAI,CACT,iCAAiC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,IAAI,CACjE,QAAQ,CACT,EAAE,CACJ,CAAC;IAEF,MAAM,aAAa,GAAG,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC;IAE3E,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,EAAE,CAAC;QAC/D,YAAY,CAAC,aAAa,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IAClE,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CACb,OAAO,KAAK,CAAC,IAAI,CACf,SAAS,CACV,sCAAsC,KAAK,CAAC,IAAI,CAC/C,WAAW,CACZ,4CAA4C,KAAK,CAAC,IAAI,CACrD,gBAAgB,CACjB,qBAAqB,CACvB,CAAC;IACJ,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { Input, Variants } from '../types.ts';
2
+ export type CompileOptions = {
3
+ esm?: boolean;
4
+ babelrc?: boolean | null;
5
+ configFile?: string | false | null;
6
+ sourceMaps?: boolean;
7
+ copyFlow?: boolean;
8
+ jsxRuntime?: 'automatic' | 'classic';
9
+ };
10
+ type Options = Input & CompileOptions & {
11
+ modules: 'commonjs' | 'preserve';
12
+ variants: Variants;
13
+ exclude: string;
14
+ };
15
+ export default function compile({ root, source, output, esm, babelrc, configFile, exclude, modules, copyFlow, sourceMaps, report, jsxRuntime, variants, }: Options): Promise<void>;
16
+ export {};