create-react-native-library 0.50.0 → 0.50.1

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.
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SUPPORTED_REACT_NATIVE_VERSION = exports.FALLBACK_NITRO_MODULES_VERSION = exports.FALLBACK_BOB_VERSION = void 0;
7
+ const FALLBACK_BOB_VERSION = exports.FALLBACK_BOB_VERSION = '0.40.8';
8
+ const FALLBACK_NITRO_MODULES_VERSION = exports.FALLBACK_NITRO_MODULES_VERSION = '0.22.1';
9
+ const SUPPORTED_REACT_NATIVE_VERSION = exports.SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';
10
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","names":["FALLBACK_BOB_VERSION","exports","FALLBACK_NITRO_MODULES_VERSION","SUPPORTED_REACT_NATIVE_VERSION"],"sources":["../src/constants.ts"],"sourcesContent":["export const FALLBACK_BOB_VERSION = '0.40.8';\nexport const FALLBACK_NITRO_MODULES_VERSION = '0.22.1';\nexport const SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';\n"],"mappings":";;;;;;AAAO,MAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,QAAQ;AACrC,MAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,QAAQ;AAC/C,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,QAAQ","ignoreList":[]}
package/lib/index.js CHANGED
@@ -5,6 +5,7 @@ var _kleur = _interopRequireDefault(require("kleur"));
5
5
  var _ora = _interopRequireDefault(require("ora"));
6
6
  var _path = _interopRequireDefault(require("path"));
7
7
  var _yargs = _interopRequireDefault(require("yargs"));
8
+ var _constants = require("./constants");
8
9
  var _dependencies = require("./exampleApp/dependencies");
9
10
  var _generateExampleApp = _interopRequireDefault(require("./exampleApp/generateExampleApp"));
10
11
  var _inform = require("./inform");
@@ -12,14 +13,11 @@ var _input = require("./input");
12
13
  var _template = require("./template");
13
14
  var _assert = require("./utils/assert");
14
15
  var _initialCommit = require("./utils/initialCommit");
15
- var _prompt = require("./utils/prompt");
16
- var _resolveNpmPackageVersion = require("./utils/resolveNpmPackageVersion");
17
16
  var _local = require("./utils/local");
18
17
  var _packageManager = require("./utils/packageManager");
18
+ var _prompt = require("./utils/prompt");
19
+ var _resolveNpmPackageVersion = require("./utils/resolveNpmPackageVersion");
19
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
- const FALLBACK_BOB_VERSION = '0.40.5';
21
- const FALLBACK_NITRO_MODULES_VERSION = '0.22.1';
22
- const SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';
23
21
  // eslint-disable-next-line @typescript-eslint/no-unused-expressions
24
22
  _yargs.default.command('$0 [name]', 'create a react native library', _input.acceptedArgs, create).demandCommand().recommendCommands().fail(_inform.printErrorHelp).parserConfiguration({
25
23
  // don't pass kebab-case args to handler.
@@ -34,17 +32,13 @@ async function create(_argv) {
34
32
  } = _argv;
35
33
 
36
34
  // Prefetch bob version in background while asking questions
37
- const bobVersionPromise = (0, _resolveNpmPackageVersion.resolveNpmPackageVersion)('react-native-builder-bob', FALLBACK_BOB_VERSION);
38
- const nitroModulesVersionPromise = (0, _resolveNpmPackageVersion.resolveNpmPackageVersion)('react-native-nitro-modules', FALLBACK_NITRO_MODULES_VERSION);
35
+ const bobVersionPromise = (0, _resolveNpmPackageVersion.resolveNpmPackageVersion)('react-native-builder-bob', _constants.FALLBACK_BOB_VERSION);
36
+ const nitroModulesVersionPromise = (0, _resolveNpmPackageVersion.resolveNpmPackageVersion)('react-native-nitro-modules', _constants.FALLBACK_NITRO_MODULES_VERSION);
39
37
  await (0, _assert.assertNpxExists)();
40
38
  const questions = await (0, _input.createQuestions)(argv);
41
- const promptAnswers = await (0, _prompt.prompt)(questions, argv, {
39
+ const answers = await (0, _prompt.prompt)(questions, argv, {
42
40
  interactive: argv.interactive
43
41
  });
44
- const answers = {
45
- ...promptAnswers,
46
- reactNativeVersion: promptAnswers.reactNativeVersion ?? SUPPORTED_REACT_NATIVE_VERSION
47
- };
48
42
  const bobVersion = await bobVersionPromise;
49
43
  const nitroModulesVersion = answers.type === 'nitro-module' ? await nitroModulesVersionPromise : undefined;
50
44
  const config = (0, _template.generateTemplateConfiguration)({
@@ -59,7 +53,7 @@ async function create(_argv) {
59
53
  });
60
54
  const folder = _path.default.resolve(process.cwd(), answers.directory);
61
55
  await _fsExtra.default.mkdirp(folder);
62
- if (answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION) {
56
+ if (answers.reactNativeVersion !== _constants.SUPPORTED_REACT_NATIVE_VERSION) {
63
57
  (0, _inform.printUsedRNVersion)(answers.reactNativeVersion, config);
64
58
  }
65
59
  const spinner = (0, _ora.default)().start();
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_fsExtra","_interopRequireDefault","require","_kleur","_ora","_path","_yargs","_dependencies","_generateExampleApp","_inform","_input","_template","_assert","_initialCommit","_prompt","_resolveNpmPackageVersion","_local","_packageManager","e","__esModule","default","FALLBACK_BOB_VERSION","FALLBACK_NITRO_MODULES_VERSION","SUPPORTED_REACT_NATIVE_VERSION","yargs","command","acceptedArgs","create","demandCommand","recommendCommands","fail","printErrorHelp","parserConfiguration","strict","argv","_argv","_","$0","bobVersionPromise","resolveNpmPackageVersion","nitroModulesVersionPromise","assertNpxExists","questions","createQuestions","promptAnswers","prompt","interactive","answers","reactNativeVersion","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitroModules","nitroCodegen","basename","path","name","directory","folder","resolve","process","cwd","fs","mkdirp","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","root","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","libraryMetadata","createMetadata","writeJson","spaces","printSuccessMessage","succeed","kleur","yellow","relative","local","packageManager","determinePackageManager","addedNitro","project","moduleConfig","addNitroDependencyToLocalLibrary","linkedLocalLibrary","linkLocalLibrary","printLocalLibNextSteps","createInitialGitCommit","printNonLocalLibNextSteps"],"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\nimport { alignDependencyVersionsWithExampleApp } from './exampleApp/dependencies';\nimport generateExampleApp from './exampleApp/generateExampleApp';\nimport {\n printErrorHelp,\n printLocalLibNextSteps,\n printNonLocalLibNextSteps,\n printUsedRNVersion,\n} from './inform';\nimport {\n acceptedArgs,\n createMetadata,\n createQuestions,\n type Answers,\n} from './input';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists } from './utils/assert';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport { prompt } from './utils/prompt';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\nimport {\n addNitroDependencyToLocalLibrary,\n linkLocalLibrary,\n} from './utils/local';\nimport { determinePackageManager } from './utils/packageManager';\n\nconst FALLBACK_BOB_VERSION = '0.40.5';\nconst FALLBACK_NITRO_MODULES_VERSION = '0.22.1';\nconst SUPPORTED_REACT_NATIVE_VERSION = '0.78.2';\n\ntype Args = Partial<Answers> & {\n name?: string;\n $0: string;\n [key: string]: unknown;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nyargs\n .command('$0 [name]', 'create a react native library', acceptedArgs, create)\n .demandCommand()\n .recommendCommands()\n .fail(printErrorHelp)\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n\nasync function create(_argv: Args) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _, $0, ...argv } = _argv;\n\n // Prefetch bob version in background while asking questions\n const bobVersionPromise = resolveNpmPackageVersion(\n 'react-native-builder-bob',\n FALLBACK_BOB_VERSION\n );\n const nitroModulesVersionPromise = resolveNpmPackageVersion(\n 'react-native-nitro-modules',\n FALLBACK_NITRO_MODULES_VERSION\n );\n\n await assertNpxExists();\n\n const questions = await createQuestions(argv);\n\n const promptAnswers = await prompt<Answers, typeof argv>(questions, argv, {\n interactive: argv.interactive,\n });\n\n const answers = {\n ...promptAnswers,\n reactNativeVersion:\n promptAnswers.reactNativeVersion ?? SUPPORTED_REACT_NATIVE_VERSION,\n };\n\n const bobVersion = await bobVersionPromise;\n\n const nitroModulesVersion =\n answers.type === 'nitro-module'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitroModules: nitroModulesVersion,\n // Nitro codegen's version is always the same as nitro modules version.\n nitroCodegen: nitroModulesVersion,\n },\n basename: path.basename(answers.name ?? answers.directory),\n answers,\n });\n\n const folder = path.resolve(process.cwd(), answers.directory);\n\n await fs.mkdirp(folder);\n\n if (answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n root: folder,\n reactNativeVersion: answers.reactNativeVersion,\n config,\n });\n }\n\n spinner.text = 'Copying files';\n\n await applyTemplates(answers, config, folder);\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (config.example !== 'none') {\n await alignDependencyVersionsWithExampleApp(rootPackageJson, folder);\n }\n\n const libraryMetadata = createMetadata(answers);\n\n rootPackageJson['create-react-native-library'] = libraryMetadata;\n\n await fs.writeJson(path.join(folder, 'package.json'), rootPackageJson, {\n spaces: 2,\n });\n\n const printSuccessMessage = () =>\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n if (answers.local) {\n const packageManager = await determinePackageManager();\n\n let addedNitro = false;\n\n if (config.project.moduleConfig === 'nitro-modules') {\n addedNitro = await addNitroDependencyToLocalLibrary(config);\n }\n\n const linkedLocalLibrary = await linkLocalLibrary(\n config,\n folder,\n packageManager\n );\n\n printSuccessMessage();\n\n printLocalLibNextSteps({\n config,\n packageManager,\n linkedLocalLibrary,\n addedNitro,\n folder,\n });\n } else {\n await createInitialGitCommit(folder);\n\n printSuccessMessage();\n\n printNonLocalLibNextSteps(config);\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_fsExtra","_interopRequireDefault","require","_kleur","_ora","_path","_yargs","_constants","_dependencies","_generateExampleApp","_inform","_input","_template","_assert","_initialCommit","_local","_packageManager","_prompt","_resolveNpmPackageVersion","e","__esModule","default","yargs","command","acceptedArgs","create","demandCommand","recommendCommands","fail","printErrorHelp","parserConfiguration","strict","argv","_argv","_","$0","bobVersionPromise","resolveNpmPackageVersion","FALLBACK_BOB_VERSION","nitroModulesVersionPromise","FALLBACK_NITRO_MODULES_VERSION","assertNpxExists","questions","createQuestions","answers","prompt","interactive","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitroModules","nitroCodegen","basename","path","name","directory","folder","resolve","process","cwd","fs","mkdirp","reactNativeVersion","SUPPORTED_REACT_NATIVE_VERSION","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","root","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","libraryMetadata","createMetadata","writeJson","spaces","printSuccessMessage","succeed","kleur","yellow","relative","local","packageManager","determinePackageManager","addedNitro","project","moduleConfig","addNitroDependencyToLocalLibrary","linkedLocalLibrary","linkLocalLibrary","printLocalLibNextSteps","createInitialGitCommit","printNonLocalLibNextSteps"],"sources":["../src/index.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\nimport yargs from 'yargs';\nimport {\n FALLBACK_BOB_VERSION,\n FALLBACK_NITRO_MODULES_VERSION,\n SUPPORTED_REACT_NATIVE_VERSION,\n} from './constants';\nimport { alignDependencyVersionsWithExampleApp } from './exampleApp/dependencies';\nimport generateExampleApp from './exampleApp/generateExampleApp';\nimport {\n printErrorHelp,\n printLocalLibNextSteps,\n printNonLocalLibNextSteps,\n printUsedRNVersion,\n} from './inform';\nimport {\n acceptedArgs,\n createMetadata,\n createQuestions,\n type Answers,\n} from './input';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists } from './utils/assert';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport {\n addNitroDependencyToLocalLibrary,\n linkLocalLibrary,\n} from './utils/local';\nimport { determinePackageManager } from './utils/packageManager';\nimport { prompt } from './utils/prompt';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\n\ntype Args = Partial<Answers> & {\n name?: string;\n $0: string;\n [key: string]: unknown;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\nyargs\n .command('$0 [name]', 'create a react native library', acceptedArgs, create)\n .demandCommand()\n .recommendCommands()\n .fail(printErrorHelp)\n .parserConfiguration({\n // don't pass kebab-case args to handler.\n 'strip-dashed': true,\n })\n .strict().argv;\n\nasync function create(_argv: Args) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { _, $0, ...argv } = _argv;\n\n // Prefetch bob version in background while asking questions\n const bobVersionPromise = resolveNpmPackageVersion(\n 'react-native-builder-bob',\n FALLBACK_BOB_VERSION\n );\n const nitroModulesVersionPromise = resolveNpmPackageVersion(\n 'react-native-nitro-modules',\n FALLBACK_NITRO_MODULES_VERSION\n );\n\n await assertNpxExists();\n\n const questions = await createQuestions(argv);\n\n const answers = await prompt<Answers, typeof argv>(questions, argv, {\n interactive: argv.interactive,\n });\n\n const bobVersion = await bobVersionPromise;\n\n const nitroModulesVersion =\n answers.type === 'nitro-module'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitroModules: nitroModulesVersion,\n // Nitro codegen's version is always the same as nitro modules version.\n nitroCodegen: nitroModulesVersion,\n },\n basename: path.basename(answers.name ?? answers.directory),\n answers,\n });\n\n const folder = path.resolve(process.cwd(), answers.directory);\n\n await fs.mkdirp(folder);\n\n if (answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example !== 'none') {\n spinner.text = 'Generating example app';\n\n await generateExampleApp({\n root: folder,\n reactNativeVersion: answers.reactNativeVersion,\n config,\n });\n }\n\n spinner.text = 'Copying files';\n\n await applyTemplates(answers, config, folder);\n\n const rootPackageJson = await fs.readJson(path.join(folder, 'package.json'));\n\n if (config.example !== 'none') {\n await alignDependencyVersionsWithExampleApp(rootPackageJson, folder);\n }\n\n const libraryMetadata = createMetadata(answers);\n\n rootPackageJson['create-react-native-library'] = libraryMetadata;\n\n await fs.writeJson(path.join(folder, 'package.json'), rootPackageJson, {\n spaces: 2,\n });\n\n const printSuccessMessage = () =>\n spinner.succeed(\n `Project created successfully at ${kleur.yellow(\n path.relative(process.cwd(), folder)\n )}!\\n`\n );\n\n if (answers.local) {\n const packageManager = await determinePackageManager();\n\n let addedNitro = false;\n\n if (config.project.moduleConfig === 'nitro-modules') {\n addedNitro = await addNitroDependencyToLocalLibrary(config);\n }\n\n const linkedLocalLibrary = await linkLocalLibrary(\n config,\n folder,\n packageManager\n );\n\n printSuccessMessage();\n\n printLocalLibNextSteps({\n config,\n packageManager,\n linkedLocalLibrary,\n addedNitro,\n folder,\n });\n } else {\n await createInitialGitCommit(folder);\n\n printSuccessMessage();\n\n printNonLocalLibNextSteps(config);\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/lib/input.js CHANGED
@@ -6,12 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.acceptedArgs = void 0;
7
7
  exports.createMetadata = createMetadata;
8
8
  exports.createQuestions = createQuestions;
9
+ var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
10
  var _githubUsername = _interopRequireDefault(require("github-username"));
11
+ var _path = _interopRequireDefault(require("path"));
10
12
  var _validateNpmPackageName = _interopRequireDefault(require("validate-npm-package-name"));
11
13
  var _package = require("../package.json");
14
+ var _constants = require("./constants");
12
15
  var _spawn = require("./utils/spawn");
13
- var _fsExtra = _interopRequireDefault(require("fs-extra"));
14
- var _path = _interopRequireDefault(require("path"));
15
16
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
17
  const LANGUAGE_CHOICES = [{
17
18
  title: 'Kotlin & Swift',
@@ -62,58 +63,59 @@ const TYPE_CHOICES = [{
62
63
  description: 'supports Expo Go and Web'
63
64
  }];
64
65
  const acceptedArgs = exports.acceptedArgs = {
65
- slug: {
66
+ 'slug': {
66
67
  description: 'Name of the npm package',
67
68
  type: 'string'
68
69
  },
69
- description: {
70
+ 'description': {
70
71
  description: 'Description of the npm package',
71
72
  type: 'string'
72
73
  },
73
- authorName: {
74
+ 'author-name': {
74
75
  description: 'Name of the package author',
75
76
  type: 'string'
76
77
  },
77
- authorEmail: {
78
+ 'author-email': {
78
79
  description: 'Email address of the package author',
79
80
  type: 'string'
80
81
  },
81
- authorUrl: {
82
+ 'author-url': {
82
83
  description: 'URL for the package author',
83
84
  type: 'string'
84
85
  },
85
- repoUrl: {
86
+ 'repo-url': {
86
87
  description: 'URL for the repository',
87
88
  type: 'string'
88
89
  },
89
- languages: {
90
+ 'languages': {
90
91
  description: 'Languages you want to use',
91
92
  choices: LANGUAGE_CHOICES.map(({
92
93
  value
93
94
  }) => value)
94
95
  },
95
- type: {
96
+ 'type': {
96
97
  description: 'Type of library you want to develop',
97
98
  choices: TYPE_CHOICES.map(({
98
99
  value
99
100
  }) => value)
100
101
  },
101
- reactNativeVersion: {
102
- description: 'Version of React Native to use, uses latest if not specified',
103
- type: 'string'
102
+ 'react-native-version': {
103
+ description: 'Version of React Native to use',
104
+ type: 'string',
105
+ default: _constants.SUPPORTED_REACT_NATIVE_VERSION
104
106
  },
105
- local: {
107
+ 'local': {
106
108
  description: 'Whether to create a local library',
107
109
  type: 'boolean'
108
110
  },
109
- example: {
111
+ 'example': {
110
112
  description: 'Type of the example app to create',
111
113
  type: 'string',
112
114
  choices: EXAMPLE_CHOICES.map(({
113
115
  value
114
116
  }) => value)
115
117
  },
116
- interactive: {
118
+ 'interactive': {
117
119
  description: 'Whether to run in interactive mode',
118
120
  type: 'boolean'
119
121
  }
package/lib/input.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","names":["_githubUsername","_interopRequireDefault","require","_validateNpmPackageName","_package","_spawn","_fsExtra","_path","e","__esModule","default","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","TYPE_CHOICES","acceptedArgs","exports","slug","type","authorName","authorEmail","authorUrl","repoUrl","languages","choices","map","reactNativeVersion","local","example","interactive","createQuestions","name","fullname","email","spawn","questions","fs","pathExists","path","join","cwd","message","initial","_","answers","includes","validate","input","pathExistsSync","basename","directory","validateNpmPackage","validForNewPackages","test","Boolean","username","githubUsername","undefined","replace","values","createMetadata","ignoredAnswers","libraryMetadata","Object","fromEntries","entries","answer","version"],"sources":["../src/input.ts"],"sourcesContent":["import githubUsername from 'github-username';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport type yargs from 'yargs';\nimport { version } from '../package.json';\nimport type { Question } from './utils/prompt';\nimport { spawn } from './utils/spawn';\nimport fs from 'fs-extra';\nimport path from 'path';\n\nexport type ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'js';\n\nexport type ProjectType =\n | 'turbo-module'\n | 'fabric-view'\n | 'nitro-module'\n | 'library';\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['nitro-module'],\n },\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: ['turbo-module', 'fabric-view'],\n },\n {\n title: 'JavaScript for Android, iOS & Web',\n value: 'js',\n types: ['library'],\n },\n];\n\nconst EXAMPLE_CHOICES = (\n [\n {\n title: 'App with Community CLI',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'React Native Test App by Microsoft',\n value: 'test-app',\n description: \"app's native code is abstracted away\",\n // The test app is disabled for now until proper\n // Codegen spec shipping is implemented\n disabled: !process.env.CRNL_ENABLE_TEST_APP,\n },\n {\n title: 'App with Expo CLI',\n value: 'expo',\n description: 'managed expo app with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'Turbo module',\n value: 'turbo-module',\n description: 'integration for native APIs to JS',\n },\n {\n title: 'Fabric view',\n value: 'fabric-view',\n description: 'integration for native views to JS',\n },\n {\n title: 'Nitro module',\n value: 'nitro-module',\n description:\n 'type-safe, fast integration for native APIs to JS (experimental)',\n },\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n];\n\nexport const acceptedArgs = {\n slug: {\n description: 'Name of the npm package',\n type: 'string',\n },\n description: {\n description: 'Description of the npm package',\n type: 'string',\n },\n authorName: {\n description: 'Name of the package author',\n type: 'string',\n },\n authorEmail: {\n description: 'Email address of the package author',\n type: 'string',\n },\n authorUrl: {\n description: 'URL for the package author',\n type: 'string',\n },\n repoUrl: {\n description: 'URL for the repository',\n type: 'string',\n },\n languages: {\n description: 'Languages you want to use',\n choices: LANGUAGE_CHOICES.map(({ value }) => value),\n },\n type: {\n description: 'Type of library you want to develop',\n choices: TYPE_CHOICES.map(({ value }) => value),\n },\n reactNativeVersion: {\n description: 'Version of React Native to use, uses latest if not specified',\n type: 'string',\n },\n local: {\n description: 'Whether to create a local library',\n type: 'boolean',\n },\n example: {\n description: 'Type of the example app to create',\n type: 'string',\n choices: EXAMPLE_CHOICES.map(({ value }) => value),\n },\n interactive: {\n description: 'Whether to run in interactive mode',\n type: 'boolean',\n },\n} as const satisfies Record<\n Exclude<keyof Answers, 'name' | 'directory'>,\n yargs.Options\n>;\n\nexport type ExampleApp = 'none' | 'test-app' | 'expo' | 'vanilla';\n\nexport type Answers = {\n directory: string;\n slug: string;\n description: string;\n authorName: string;\n authorEmail: string;\n authorUrl: string;\n repoUrl: string;\n languages: ProjectLanguages;\n type: ProjectType;\n example: ExampleApp;\n reactNativeVersion: string;\n local?: boolean;\n interactive?: boolean;\n};\n\nexport async function createQuestions({\n name,\n local,\n}: {\n name?: string;\n local?: boolean;\n}) {\n let fullname, email;\n\n try {\n fullname = await spawn('git', ['config', '--get', 'user.name']);\n email = await spawn('git', ['config', '--get', 'user.email']);\n } catch (e) {\n // Ignore error\n }\n\n const questions: Question<keyof Answers>[] = [\n {\n type:\n local == null &&\n (await fs.pathExists(path.join(process.cwd(), 'package.json')))\n ? 'confirm'\n : null,\n name: 'local',\n message: `Looks like you're under a project folder. Do you want to create a local library?`,\n initial: local,\n default: false,\n },\n {\n type: (_, answers) => (name && !(answers.local ?? local) ? null : 'text'),\n name: 'directory',\n message: `Where do you want to create the library?`,\n initial: (_: string, answers: Answers) => {\n if ((answers.local ?? local) && name && !name?.includes('/')) {\n return `modules/${name}`;\n }\n\n return name ?? '';\n },\n validate: (input) => {\n if (!input) {\n return 'Cannot be empty';\n }\n\n if (fs.pathExistsSync(path.join(process.cwd(), input))) {\n return 'Folder already exists';\n }\n\n return true;\n },\n default: name,\n },\n {\n type: 'text',\n name: 'slug',\n message: 'What is the name of the npm package?',\n initial: (_: string, answers: Answers) => {\n const basename = path.basename(answers.directory ?? name ?? '');\n\n if (validateNpmPackage(basename).validForNewPackages) {\n if (/^(@|react-native)/.test(basename)) {\n return basename;\n }\n\n return `react-native-${basename}`;\n }\n\n return '';\n },\n validate: (input) =>\n validateNpmPackage(input).validForNewPackages ||\n 'Must be a valid npm package name',\n },\n {\n type: 'text',\n name: 'description',\n message: 'What is the description for the package?',\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorName',\n message: 'What is the name of package author?',\n initial: fullname,\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorEmail',\n message: 'What is the email address for the package author?',\n initial: email,\n validate: (input) =>\n /^\\S+@\\S+$/.test(input) || 'Must be a valid email address',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorUrl',\n message: 'What is the URL for the package author?',\n // @ts-expect-error this is supported, but types are wrong\n initial: async (_: string, answers: Answers) => {\n try {\n const username = await githubUsername(answers.authorEmail);\n\n return `https://github.com/${username}`;\n } catch (e) {\n // Ignore error\n }\n\n return undefined;\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'repoUrl',\n message: 'What is the URL for the repository?',\n initial: (_: string, answers: Answers) => {\n if (/^https?:\\/\\/github.com\\/[^/]+/.test(answers.authorUrl)) {\n return `${answers.authorUrl}/${answers.slug\n .replace(/^@/, '')\n .replace(/\\//g, '-')}`;\n }\n\n return '';\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: 'select',\n name: 'type',\n message: 'What type of library do you want to develop?',\n choices: TYPE_CHOICES,\n },\n {\n type: 'select',\n name: 'languages',\n message: 'Which languages do you want to use?',\n choices: (_, values) => {\n return LANGUAGE_CHOICES.filter((choice) => {\n if (choice.types) {\n return choice.types.includes(values.type);\n }\n\n return true;\n });\n },\n },\n {\n type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n if (local) {\n return [\n {\n title: 'None',\n value: 'none',\n },\n ];\n }\n\n return EXAMPLE_CHOICES.filter((choice) => {\n if (values.type) {\n return values.type === 'library'\n ? choice.value === 'expo'\n : choice.value !== 'expo';\n }\n\n return true;\n });\n },\n },\n ];\n\n return questions;\n}\n\nexport function createMetadata(answers: Answers) {\n // Some of the passed args can already be derived from the generated package.json file.\n const ignoredAnswers: (keyof Answers | 'name')[] = [\n 'name',\n 'directory',\n 'slug',\n 'description',\n 'authorName',\n 'authorEmail',\n 'authorUrl',\n 'repoUrl',\n 'example',\n 'reactNativeVersion',\n 'local',\n 'interactive',\n ];\n\n type AnswerEntries<T extends keyof Answers = keyof Answers> = [\n T,\n Answers[T],\n ][];\n\n const libraryMetadata = Object.fromEntries(\n (Object.entries(answers) as AnswerEntries).filter(\n ([answer]) => !ignoredAnswers.includes(answer)\n )\n );\n\n libraryMetadata.version = version;\n\n return libraryMetadata;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"input.js","names":["_fsExtra","_interopRequireDefault","require","_githubUsername","_path","_validateNpmPackageName","_package","_constants","_spawn","e","__esModule","default","LANGUAGE_CHOICES","title","value","types","EXAMPLE_CHOICES","description","disabled","process","env","CRNL_ENABLE_TEST_APP","filter","choice","TYPE_CHOICES","acceptedArgs","exports","type","choices","map","SUPPORTED_REACT_NATIVE_VERSION","createQuestions","name","local","fullname","email","spawn","questions","fs","pathExists","path","join","cwd","message","initial","_","answers","includes","validate","input","pathExistsSync","basename","directory","validateNpmPackage","validForNewPackages","test","Boolean","username","githubUsername","authorEmail","undefined","authorUrl","slug","replace","values","createMetadata","ignoredAnswers","libraryMetadata","Object","fromEntries","entries","answer","version"],"sources":["../src/input.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport githubUsername from 'github-username';\nimport path from 'path';\nimport validateNpmPackage from 'validate-npm-package-name';\nimport type yargs from 'yargs';\nimport { version } from '../package.json';\nimport { SUPPORTED_REACT_NATIVE_VERSION } from './constants';\nimport type { Question } from './utils/prompt';\nimport { spawn } from './utils/spawn';\n\nexport type ProjectLanguages = 'kotlin-objc' | 'kotlin-swift' | 'js';\n\nexport type ProjectType =\n | 'turbo-module'\n | 'fabric-view'\n | 'nitro-module'\n | 'library';\n\nconst LANGUAGE_CHOICES: {\n title: string;\n value: ProjectLanguages;\n types: ProjectType[];\n}[] = [\n {\n title: 'Kotlin & Swift',\n value: 'kotlin-swift',\n types: ['nitro-module'],\n },\n {\n title: 'Kotlin & Objective-C',\n value: 'kotlin-objc',\n types: ['turbo-module', 'fabric-view'],\n },\n {\n title: 'JavaScript for Android, iOS & Web',\n value: 'js',\n types: ['library'],\n },\n];\n\nconst EXAMPLE_CHOICES = (\n [\n {\n title: 'App with Community CLI',\n value: 'vanilla',\n description: \"provides access to app's native code\",\n disabled: false,\n },\n {\n title: 'React Native Test App by Microsoft',\n value: 'test-app',\n description: \"app's native code is abstracted away\",\n // The test app is disabled for now until proper\n // Codegen spec shipping is implemented\n disabled: !process.env.CRNL_ENABLE_TEST_APP,\n },\n {\n title: 'App with Expo CLI',\n value: 'expo',\n description: 'managed expo app with web support',\n disabled: false,\n },\n ] as const\n).filter((choice) => !choice.disabled);\n\nconst TYPE_CHOICES: {\n title: string;\n value: ProjectType;\n description: string;\n}[] = [\n {\n title: 'Turbo module',\n value: 'turbo-module',\n description: 'integration for native APIs to JS',\n },\n {\n title: 'Fabric view',\n value: 'fabric-view',\n description: 'integration for native views to JS',\n },\n {\n title: 'Nitro module',\n value: 'nitro-module',\n description:\n 'type-safe, fast integration for native APIs to JS (experimental)',\n },\n {\n title: 'JavaScript library',\n value: 'library',\n description: 'supports Expo Go and Web',\n },\n];\n\nexport const acceptedArgs = {\n 'slug': {\n description: 'Name of the npm package',\n type: 'string',\n },\n 'description': {\n description: 'Description of the npm package',\n type: 'string',\n },\n 'author-name': {\n description: 'Name of the package author',\n type: 'string',\n },\n 'author-email': {\n description: 'Email address of the package author',\n type: 'string',\n },\n 'author-url': {\n description: 'URL for the package author',\n type: 'string',\n },\n 'repo-url': {\n description: 'URL for the repository',\n type: 'string',\n },\n 'languages': {\n description: 'Languages you want to use',\n choices: LANGUAGE_CHOICES.map(({ value }) => value),\n },\n 'type': {\n description: 'Type of library you want to develop',\n choices: TYPE_CHOICES.map(({ value }) => value),\n },\n 'react-native-version': {\n description: 'Version of React Native to use',\n type: 'string',\n default: SUPPORTED_REACT_NATIVE_VERSION,\n },\n 'local': {\n description: 'Whether to create a local library',\n type: 'boolean',\n },\n 'example': {\n description: 'Type of the example app to create',\n type: 'string',\n choices: EXAMPLE_CHOICES.map(({ value }) => value),\n },\n 'interactive': {\n description: 'Whether to run in interactive mode',\n type: 'boolean',\n },\n} as const satisfies Record<string, yargs.Options>;\n\nexport type ExampleApp = 'none' | 'test-app' | 'expo' | 'vanilla';\n\nexport type Answers = {\n directory: string;\n slug: string;\n description: string;\n authorName: string;\n authorEmail: string;\n authorUrl: string;\n repoUrl: string;\n languages: ProjectLanguages;\n type: ProjectType;\n example: ExampleApp;\n reactNativeVersion: string;\n local?: boolean;\n interactive?: boolean;\n};\n\nexport async function createQuestions({\n name,\n local,\n}: {\n name?: string;\n local?: boolean;\n}) {\n let fullname, email;\n\n try {\n fullname = await spawn('git', ['config', '--get', 'user.name']);\n email = await spawn('git', ['config', '--get', 'user.email']);\n } catch (e) {\n // Ignore error\n }\n\n const questions: Question<keyof Answers>[] = [\n {\n type:\n local == null &&\n (await fs.pathExists(path.join(process.cwd(), 'package.json')))\n ? 'confirm'\n : null,\n name: 'local',\n message: `Looks like you're under a project folder. Do you want to create a local library?`,\n initial: local,\n default: false,\n },\n {\n type: (_, answers) => (name && !(answers.local ?? local) ? null : 'text'),\n name: 'directory',\n message: `Where do you want to create the library?`,\n initial: (_: string, answers: Answers) => {\n if ((answers.local ?? local) && name && !name?.includes('/')) {\n return `modules/${name}`;\n }\n\n return name ?? '';\n },\n validate: (input) => {\n if (!input) {\n return 'Cannot be empty';\n }\n\n if (fs.pathExistsSync(path.join(process.cwd(), input))) {\n return 'Folder already exists';\n }\n\n return true;\n },\n default: name,\n },\n {\n type: 'text',\n name: 'slug',\n message: 'What is the name of the npm package?',\n initial: (_: string, answers: Answers) => {\n const basename = path.basename(answers.directory ?? name ?? '');\n\n if (validateNpmPackage(basename).validForNewPackages) {\n if (/^(@|react-native)/.test(basename)) {\n return basename;\n }\n\n return `react-native-${basename}`;\n }\n\n return '';\n },\n validate: (input) =>\n validateNpmPackage(input).validForNewPackages ||\n 'Must be a valid npm package name',\n },\n {\n type: 'text',\n name: 'description',\n message: 'What is the description for the package?',\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorName',\n message: 'What is the name of package author?',\n initial: fullname,\n validate: (input) => Boolean(input) || 'Cannot be empty',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorEmail',\n message: 'What is the email address for the package author?',\n initial: email,\n validate: (input) =>\n /^\\S+@\\S+$/.test(input) || 'Must be a valid email address',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'authorUrl',\n message: 'What is the URL for the package author?',\n // @ts-expect-error this is supported, but types are wrong\n initial: async (_: string, answers: Answers) => {\n try {\n const username = await githubUsername(answers.authorEmail);\n\n return `https://github.com/${username}`;\n } catch (e) {\n // Ignore error\n }\n\n return undefined;\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: (_, answers) => (answers.local ?? local ? null : 'text'),\n name: 'repoUrl',\n message: 'What is the URL for the repository?',\n initial: (_: string, answers: Answers) => {\n if (/^https?:\\/\\/github.com\\/[^/]+/.test(answers.authorUrl)) {\n return `${answers.authorUrl}/${answers.slug\n .replace(/^@/, '')\n .replace(/\\//g, '-')}`;\n }\n\n return '';\n },\n validate: (input) => /^https?:\\/\\//.test(input) || 'Must be a valid URL',\n },\n {\n type: 'select',\n name: 'type',\n message: 'What type of library do you want to develop?',\n choices: TYPE_CHOICES,\n },\n {\n type: 'select',\n name: 'languages',\n message: 'Which languages do you want to use?',\n choices: (_, values) => {\n return LANGUAGE_CHOICES.filter((choice) => {\n if (choice.types) {\n return choice.types.includes(values.type);\n }\n\n return true;\n });\n },\n },\n {\n type: 'select',\n name: 'example',\n message: 'What type of example app do you want to create?',\n choices: (_, values) => {\n if (local) {\n return [\n {\n title: 'None',\n value: 'none',\n },\n ];\n }\n\n return EXAMPLE_CHOICES.filter((choice) => {\n if (values.type) {\n return values.type === 'library'\n ? choice.value === 'expo'\n : choice.value !== 'expo';\n }\n\n return true;\n });\n },\n },\n ];\n\n return questions;\n}\n\nexport function createMetadata(answers: Answers) {\n // Some of the passed args can already be derived from the generated package.json file.\n const ignoredAnswers: (keyof Answers | 'name')[] = [\n 'name',\n 'directory',\n 'slug',\n 'description',\n 'authorName',\n 'authorEmail',\n 'authorUrl',\n 'repoUrl',\n 'example',\n 'reactNativeVersion',\n 'local',\n 'interactive',\n ];\n\n type AnswerEntries<T extends keyof Answers = keyof Answers> = [\n T,\n Answers[T],\n ][];\n\n const libraryMetadata = Object.fromEntries(\n (Object.entries(answers) as AnswerEntries).filter(\n ([answer]) => !ignoredAnswers.includes(answer)\n )\n );\n\n libraryMetadata.version = version;\n\n return libraryMetadata;\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,eAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,uBAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAEA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAEA,IAAAM,MAAA,GAAAN,OAAA;AAAsC,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAUtC,MAAMG,gBAIH,GAAG,CACJ;EACEC,KAAK,EAAE,gBAAgB;EACvBC,KAAK,EAAE,cAAc;EACrBC,KAAK,EAAE,CAAC,cAAc;AACxB,CAAC,EACD;EACEF,KAAK,EAAE,sBAAsB;EAC7BC,KAAK,EAAE,aAAa;EACpBC,KAAK,EAAE,CAAC,cAAc,EAAE,aAAa;AACvC,CAAC,EACD;EACEF,KAAK,EAAE,mCAAmC;EAC1CC,KAAK,EAAE,IAAI;EACXC,KAAK,EAAE,CAAC,SAAS;AACnB,CAAC,CACF;AAED,MAAMC,eAAe,GACnB,CACE;EACEH,KAAK,EAAE,wBAAwB;EAC/BC,KAAK,EAAE,SAAS;EAChBG,WAAW,EAAE,sCAAsC;EACnDC,QAAQ,EAAE;AACZ,CAAC,EACD;EACEL,KAAK,EAAE,oCAAoC;EAC3CC,KAAK,EAAE,UAAU;EACjBG,WAAW,EAAE,sCAAsC;EACnD;EACA;EACAC,QAAQ,EAAE,CAACC,OAAO,CAACC,GAAG,CAACC;AACzB,CAAC,EACD;EACER,KAAK,EAAE,mBAAmB;EAC1BC,KAAK,EAAE,MAAM;EACbG,WAAW,EAAE,mCAAmC;EAChDC,QAAQ,EAAE;AACZ,CAAC,CACF,CACDI,MAAM,CAAEC,MAAM,IAAK,CAACA,MAAM,CAACL,QAAQ,CAAC;AAEtC,MAAMM,YAIH,GAAG,CACJ;EACEX,KAAK,EAAE,cAAc;EACrBC,KAAK,EAAE,cAAc;EACrBG,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,KAAK,EAAE,aAAa;EACpBC,KAAK,EAAE,aAAa;EACpBG,WAAW,EAAE;AACf,CAAC,EACD;EACEJ,KAAK,EAAE,cAAc;EACrBC,KAAK,EAAE,cAAc;EACrBG,WAAW,EACT;AACJ,CAAC,EACD;EACEJ,KAAK,EAAE,oBAAoB;EAC3BC,KAAK,EAAE,SAAS;EAChBG,WAAW,EAAE;AACf,CAAC,CACF;AAEM,MAAMQ,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1B,MAAM,EAAE;IACNR,WAAW,EAAE,yBAAyB;IACtCU,IAAI,EAAE;EACR,CAAC;EACD,aAAa,EAAE;IACbV,WAAW,EAAE,gCAAgC;IAC7CU,IAAI,EAAE;EACR,CAAC;EACD,aAAa,EAAE;IACbV,WAAW,EAAE,4BAA4B;IACzCU,IAAI,EAAE;EACR,CAAC;EACD,cAAc,EAAE;IACdV,WAAW,EAAE,qCAAqC;IAClDU,IAAI,EAAE;EACR,CAAC;EACD,YAAY,EAAE;IACZV,WAAW,EAAE,4BAA4B;IACzCU,IAAI,EAAE;EACR,CAAC;EACD,UAAU,EAAE;IACVV,WAAW,EAAE,wBAAwB;IACrCU,IAAI,EAAE;EACR,CAAC;EACD,WAAW,EAAE;IACXV,WAAW,EAAE,2BAA2B;IACxCW,OAAO,EAAEhB,gBAAgB,CAACiB,GAAG,CAAC,CAAC;MAAEf;IAAM,CAAC,KAAKA,KAAK;EACpD,CAAC;EACD,MAAM,EAAE;IACNG,WAAW,EAAE,qCAAqC;IAClDW,OAAO,EAAEJ,YAAY,CAACK,GAAG,CAAC,CAAC;MAAEf;IAAM,CAAC,KAAKA,KAAK;EAChD,CAAC;EACD,sBAAsB,EAAE;IACtBG,WAAW,EAAE,gCAAgC;IAC7CU,IAAI,EAAE,QAAQ;IACdhB,OAAO,EAAEmB;EACX,CAAC;EACD,OAAO,EAAE;IACPb,WAAW,EAAE,mCAAmC;IAChDU,IAAI,EAAE;EACR,CAAC;EACD,SAAS,EAAE;IACTV,WAAW,EAAE,mCAAmC;IAChDU,IAAI,EAAE,QAAQ;IACdC,OAAO,EAAEZ,eAAe,CAACa,GAAG,CAAC,CAAC;MAAEf;IAAM,CAAC,KAAKA,KAAK;EACnD,CAAC;EACD,aAAa,EAAE;IACbG,WAAW,EAAE,oCAAoC;IACjDU,IAAI,EAAE;EACR;AACF,CAAkD;AAoB3C,eAAeI,eAAeA,CAAC;EACpCC,IAAI;EACJC;AAIF,CAAC,EAAE;EACD,IAAIC,QAAQ,EAAEC,KAAK;EAEnB,IAAI;IACFD,QAAQ,GAAG,MAAM,IAAAE,YAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC/DD,KAAK,GAAG,MAAM,IAAAC,YAAK,EAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;EAC/D,CAAC,CAAC,OAAO3B,CAAC,EAAE;IACV;EAAA;EAGF,MAAM4B,SAAoC,GAAG,CAC3C;IACEV,IAAI,EACFM,KAAK,IAAI,IAAI,KACZ,MAAMK,gBAAE,CAACC,UAAU,CAACC,aAAI,CAACC,IAAI,CAACtB,OAAO,CAACuB,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,GAC3D,SAAS,GACT,IAAI;IACVV,IAAI,EAAE,OAAO;IACbW,OAAO,EAAE,kFAAkF;IAC3FC,OAAO,EAAEX,KAAK;IACdtB,OAAO,EAAE;EACX,CAAC,EACD;IACEgB,IAAI,EAAEA,CAACkB,CAAC,EAAEC,OAAO,KAAMd,IAAI,IAAI,EAAEc,OAAO,CAACb,KAAK,IAAIA,KAAK,CAAC,GAAG,IAAI,GAAG,MAAO;IACzED,IAAI,EAAE,WAAW;IACjBW,OAAO,EAAE,0CAA0C;IACnDC,OAAO,EAAEA,CAACC,CAAS,EAAEC,OAAgB,KAAK;MACxC,IAAI,CAACA,OAAO,CAACb,KAAK,IAAIA,KAAK,KAAKD,IAAI,IAAI,CAACA,IAAI,EAAEe,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC5D,OAAO,WAAWf,IAAI,EAAE;MAC1B;MAEA,OAAOA,IAAI,IAAI,EAAE;IACnB,CAAC;IACDgB,QAAQ,EAAGC,KAAK,IAAK;MACnB,IAAI,CAACA,KAAK,EAAE;QACV,OAAO,iBAAiB;MAC1B;MAEA,IAAIX,gBAAE,CAACY,cAAc,CAACV,aAAI,CAACC,IAAI,CAACtB,OAAO,CAACuB,GAAG,CAAC,CAAC,EAAEO,KAAK,CAAC,CAAC,EAAE;QACtD,OAAO,uBAAuB;MAChC;MAEA,OAAO,IAAI;IACb,CAAC;IACDtC,OAAO,EAAEqB;EACX,CAAC,EACD;IACEL,IAAI,EAAE,MAAM;IACZK,IAAI,EAAE,MAAM;IACZW,OAAO,EAAE,sCAAsC;IAC/CC,OAAO,EAAEA,CAACC,CAAS,EAAEC,OAAgB,KAAK;MACxC,MAAMK,QAAQ,GAAGX,aAAI,CAACW,QAAQ,CAACL,OAAO,CAACM,SAAS,IAAIpB,IAAI,IAAI,EAAE,CAAC;MAE/D,IAAI,IAAAqB,+BAAkB,EAACF,QAAQ,CAAC,CAACG,mBAAmB,EAAE;QACpD,IAAI,mBAAmB,CAACC,IAAI,CAACJ,QAAQ,CAAC,EAAE;UACtC,OAAOA,QAAQ;QACjB;QAEA,OAAO,gBAAgBA,QAAQ,EAAE;MACnC;MAEA,OAAO,EAAE;IACX,CAAC;IACDH,QAAQ,EAAGC,KAAK,IACd,IAAAI,+BAAkB,EAACJ,KAAK,CAAC,CAACK,mBAAmB,IAC7C;EACJ,CAAC,EACD;IACE3B,IAAI,EAAE,MAAM;IACZK,IAAI,EAAE,aAAa;IACnBW,OAAO,EAAE,0CAA0C;IACnDK,QAAQ,EAAGC,KAAK,IAAKO,OAAO,CAACP,KAAK,CAAC,IAAI;EACzC,CAAC,EACD;IACEtB,IAAI,EAAEA,CAACkB,CAAC,EAAEC,OAAO,KAAMA,OAAO,CAACb,KAAK,IAAIA,KAAK,GAAG,IAAI,GAAG,MAAO;IAC9DD,IAAI,EAAE,YAAY;IAClBW,OAAO,EAAE,qCAAqC;IAC9CC,OAAO,EAAEV,QAAQ;IACjBc,QAAQ,EAAGC,KAAK,IAAKO,OAAO,CAACP,KAAK,CAAC,IAAI;EACzC,CAAC,EACD;IACEtB,IAAI,EAAEA,CAACkB,CAAC,EAAEC,OAAO,KAAMA,OAAO,CAACb,KAAK,IAAIA,KAAK,GAAG,IAAI,GAAG,MAAO;IAC9DD,IAAI,EAAE,aAAa;IACnBW,OAAO,EAAE,mDAAmD;IAC5DC,OAAO,EAAET,KAAK;IACda,QAAQ,EAAGC,KAAK,IACd,WAAW,CAACM,IAAI,CAACN,KAAK,CAAC,IAAI;EAC/B,CAAC,EACD;IACEtB,IAAI,EAAEA,CAACkB,CAAC,EAAEC,OAAO,KAAMA,OAAO,CAACb,KAAK,IAAIA,KAAK,GAAG,IAAI,GAAG,MAAO;IAC9DD,IAAI,EAAE,WAAW;IACjBW,OAAO,EAAE,yCAAyC;IAClD;IACAC,OAAO,EAAE,MAAAA,CAAOC,CAAS,EAAEC,OAAgB,KAAK;MAC9C,IAAI;QACF,MAAMW,QAAQ,GAAG,MAAM,IAAAC,uBAAc,EAACZ,OAAO,CAACa,WAAW,CAAC;QAE1D,OAAO,sBAAsBF,QAAQ,EAAE;MACzC,CAAC,CAAC,OAAOhD,CAAC,EAAE;QACV;MAAA;MAGF,OAAOmD,SAAS;IAClB,CAAC;IACDZ,QAAQ,EAAGC,KAAK,IAAK,cAAc,CAACM,IAAI,CAACN,KAAK,CAAC,IAAI;EACrD,CAAC,EACD;IACEtB,IAAI,EAAEA,CAACkB,CAAC,EAAEC,OAAO,KAAMA,OAAO,CAACb,KAAK,IAAIA,KAAK,GAAG,IAAI,GAAG,MAAO;IAC9DD,IAAI,EAAE,SAAS;IACfW,OAAO,EAAE,qCAAqC;IAC9CC,OAAO,EAAEA,CAACC,CAAS,EAAEC,OAAgB,KAAK;MACxC,IAAI,+BAA+B,CAACS,IAAI,CAACT,OAAO,CAACe,SAAS,CAAC,EAAE;QAC3D,OAAO,GAAGf,OAAO,CAACe,SAAS,IAAIf,OAAO,CAACgB,IAAI,CACxCC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CACjBA,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE;MAC1B;MAEA,OAAO,EAAE;IACX,CAAC;IACDf,QAAQ,EAAGC,KAAK,IAAK,cAAc,CAACM,IAAI,CAACN,KAAK,CAAC,IAAI;EACrD,CAAC,EACD;IACEtB,IAAI,EAAE,QAAQ;IACdK,IAAI,EAAE,MAAM;IACZW,OAAO,EAAE,8CAA8C;IACvDf,OAAO,EAAEJ;EACX,CAAC,EACD;IACEG,IAAI,EAAE,QAAQ;IACdK,IAAI,EAAE,WAAW;IACjBW,OAAO,EAAE,qCAAqC;IAC9Cf,OAAO,EAAEA,CAACiB,CAAC,EAAEmB,MAAM,KAAK;MACtB,OAAOpD,gBAAgB,CAACU,MAAM,CAAEC,MAAM,IAAK;QACzC,IAAIA,MAAM,CAACR,KAAK,EAAE;UAChB,OAAOQ,MAAM,CAACR,KAAK,CAACgC,QAAQ,CAACiB,MAAM,CAACrC,IAAI,CAAC;QAC3C;QAEA,OAAO,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC,EACD;IACEA,IAAI,EAAE,QAAQ;IACdK,IAAI,EAAE,SAAS;IACfW,OAAO,EAAE,iDAAiD;IAC1Df,OAAO,EAAEA,CAACiB,CAAC,EAAEmB,MAAM,KAAK;MACtB,IAAI/B,KAAK,EAAE;QACT,OAAO,CACL;UACEpB,KAAK,EAAE,MAAM;UACbC,KAAK,EAAE;QACT,CAAC,CACF;MACH;MAEA,OAAOE,eAAe,CAACM,MAAM,CAAEC,MAAM,IAAK;QACxC,IAAIyC,MAAM,CAACrC,IAAI,EAAE;UACf,OAAOqC,MAAM,CAACrC,IAAI,KAAK,SAAS,GAC5BJ,MAAM,CAACT,KAAK,KAAK,MAAM,GACvBS,MAAM,CAACT,KAAK,KAAK,MAAM;QAC7B;QAEA,OAAO,IAAI;MACb,CAAC,CAAC;IACJ;EACF,CAAC,CACF;EAED,OAAOuB,SAAS;AAClB;AAEO,SAAS4B,cAAcA,CAACnB,OAAgB,EAAE;EAC/C;EACA,MAAMoB,cAA0C,GAAG,CACjD,MAAM,EACN,WAAW,EACX,MAAM,EACN,aAAa,EACb,YAAY,EACZ,aAAa,EACb,WAAW,EACX,SAAS,EACT,SAAS,EACT,oBAAoB,EACpB,OAAO,EACP,aAAa,CACd;EAOD,MAAMC,eAAe,GAAGC,MAAM,CAACC,WAAW,CACvCD,MAAM,CAACE,OAAO,CAACxB,OAAO,CAAC,CAAmBxB,MAAM,CAC/C,CAAC,CAACiD,MAAM,CAAC,KAAK,CAACL,cAAc,CAACnB,QAAQ,CAACwB,MAAM,CAC/C,CACF,CAAC;EAEDJ,eAAe,CAACK,OAAO,GAAGA,gBAAO;EAEjC,OAAOL,eAAe;AACxB","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-react-native-library",
3
- "version": "0.50.0",
3
+ "version": "0.50.1",
4
4
  "description": "CLI to scaffold React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -65,5 +65,5 @@
65
65
  "@types/validate-npm-package-name": "^3.0.3",
66
66
  "@types/yargs": "^17.0.10"
67
67
  },
68
- "gitHead": "a448a7ff39bfe4407813c99d31d3f96707115337"
68
+ "gitHead": "7b6b2fb83cd37cdab748c1b69f0abbf5ed7ee744"
69
69
  }