create-react-native-library 0.55.2 → 0.56.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.
package/lib/constants.js CHANGED
@@ -6,5 +6,5 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.SUPPORTED_REACT_NATIVE_VERSION = exports.FALLBACK_NITRO_MODULES_VERSION = exports.FALLBACK_BOB_VERSION = void 0;
7
7
  const FALLBACK_BOB_VERSION = exports.FALLBACK_BOB_VERSION = '0.40.13';
8
8
  const FALLBACK_NITRO_MODULES_VERSION = exports.FALLBACK_NITRO_MODULES_VERSION = '0.29.8';
9
- const SUPPORTED_REACT_NATIVE_VERSION = exports.SUPPORTED_REACT_NATIVE_VERSION = '0.81.1';
9
+ const SUPPORTED_REACT_NATIVE_VERSION = exports.SUPPORTED_REACT_NATIVE_VERSION = '0.83.0';
10
10
  //# sourceMappingURL=constants.js.map
@@ -1 +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.13';\nexport const FALLBACK_NITRO_MODULES_VERSION = '0.29.8';\nexport const SUPPORTED_REACT_NATIVE_VERSION = '0.81.1';\n"],"mappings":";;;;;;AAAO,MAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAS;AACtC,MAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,QAAQ;AAC/C,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,QAAQ","ignoreList":[]}
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.13';\nexport const FALLBACK_NITRO_MODULES_VERSION = '0.29.8';\nexport const SUPPORTED_REACT_NATIVE_VERSION = '0.83.0';\n"],"mappings":";;;;;;AAAO,MAAMA,oBAAoB,GAAAC,OAAA,CAAAD,oBAAA,GAAG,SAAS;AACtC,MAAME,8BAA8B,GAAAD,OAAA,CAAAC,8BAAA,GAAG,QAAQ;AAC/C,MAAMC,8BAA8B,GAAAF,OAAA,CAAAE,8BAAA,GAAG,QAAQ","ignoreList":[]}
package/lib/index.js CHANGED
@@ -64,7 +64,7 @@ async function create() {
64
64
  if (config.example != null) {
65
65
  await (0, _dependencies.alignDependencyVersionsWithExampleApp)(rootPackageJson, folder);
66
66
  }
67
- if (!answers.local && answers.tools.length > 0) {
67
+ if (!answers.local) {
68
68
  spinner.text = 'Configuring tools';
69
69
  await (0, _configureTools.configureTools)({
70
70
  tools: answers.tools,
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_package","_interopRequireDefault","require","_fsExtra","_kleur","_ora","_path","_constants","_dependencies","_generateExampleApp","_inform","_prompt","_template","_assert","_configureTools","_initialCommit","_local","_packageManager","_resolveNpmPackageVersion","_createMetadata","e","__esModule","default","create","bobVersionPromise","resolveNpmPackageVersion","FALLBACK_BOB_VERSION","nitroModulesVersionPromise","FALLBACK_NITRO_MODULES_VERSION","assertNpxExists","answers","prompt","show","name","pak","version","description","process","exit","console","log","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitro","basename","path","directory","folder","resolve","cwd","fs","mkdirp","reactNativeVersion","SUPPORTED_REACT_NATIVE_VERSION","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","root","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","local","tools","length","configureTools","packageJson","libraryMetadata","createMetadata","writeJson","spaces","printSuccessMessage","succeed","kleur","yellow","relative","packageManager","determinePackageManager","addedNitro","project","moduleConfig","addNitroDependencyToLocalLibrary","linkedLocalLibrary","linkLocalLibrary","printLocalLibNextSteps","abortController","AbortController","Promise","race","createInitialGitCommit","signal","_resolve","reject","setTimeout","error","Error","abort","message","warn","printNonLocalLibNextSteps","catch","red"],"sources":["../src/index.ts"],"sourcesContent":["import pak from '../package.json';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\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 printLocalLibNextSteps,\n printNonLocalLibNextSteps,\n printUsedRNVersion,\n} from './inform';\nimport { prompt } from './prompt';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists } from './utils/assert';\nimport { configureTools } from './utils/configureTools';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport {\n addNitroDependencyToLocalLibrary,\n linkLocalLibrary,\n} from './utils/local';\nimport { determinePackageManager } from './utils/packageManager';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\nimport { createMetadata } from './utils/createMetadata';\n\nasync function create() {\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 answers = await prompt.show({\n name: pak.name,\n version: pak.version,\n description: pak.description,\n });\n\n if (answers == null) {\n process.exit(0);\n }\n\n console.log(''); // Empty new line after prompts\n\n const bobVersion = await bobVersionPromise;\n const nitroModulesVersion =\n answers.type === 'nitro-module' || answers.type === 'nitro-view'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitro: 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 (\n answers.reactNativeVersion != null &&\n answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION\n ) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example != null) {\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 != null) {\n await alignDependencyVersionsWithExampleApp(rootPackageJson, folder);\n }\n\n if (!answers.local && answers.tools.length > 0) {\n spinner.text = 'Configuring tools';\n\n await configureTools({\n tools: answers.tools,\n config,\n root: folder,\n packageJson: rootPackageJson,\n });\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 spinner.text = 'Initializing git repository';\n\n try {\n const abortController = new AbortController();\n\n // Creating git repository can get stuck in some cases,\n // e.g. if git asks for ssh passphrase.\n // We abort it after a timeout so that this doesn't hang forever.\n await Promise.race([\n createInitialGitCommit(folder, abortController.signal),\n new Promise<void>((_resolve, reject) => {\n setTimeout(() => {\n const error = new Error('Creating git repository took too long');\n\n abortController.abort(error.message);\n reject(error);\n }, 5000);\n }),\n ]);\n } catch (error) {\n spinner.warn('Failed to create git repository');\n }\n\n printSuccessMessage();\n\n printNonLocalLibNextSteps(config);\n }\n}\n\ncreate().catch((e: unknown) => {\n console.log('\\n');\n console.log(kleur.red('× An error occurred while creating the project.\\n'));\n console.error(e);\n\n process.exit(1);\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_package","_interopRequireDefault","require","_fsExtra","_kleur","_ora","_path","_constants","_dependencies","_generateExampleApp","_inform","_prompt","_template","_assert","_configureTools","_initialCommit","_local","_packageManager","_resolveNpmPackageVersion","_createMetadata","e","__esModule","default","create","bobVersionPromise","resolveNpmPackageVersion","FALLBACK_BOB_VERSION","nitroModulesVersionPromise","FALLBACK_NITRO_MODULES_VERSION","assertNpxExists","answers","prompt","show","name","pak","version","description","process","exit","console","log","bobVersion","nitroModulesVersion","type","undefined","config","generateTemplateConfiguration","versions","bob","nitro","basename","path","directory","folder","resolve","cwd","fs","mkdirp","reactNativeVersion","SUPPORTED_REACT_NATIVE_VERSION","printUsedRNVersion","spinner","ora","start","example","text","generateExampleApp","root","applyTemplates","rootPackageJson","readJson","join","alignDependencyVersionsWithExampleApp","local","configureTools","tools","packageJson","libraryMetadata","createMetadata","writeJson","spaces","printSuccessMessage","succeed","kleur","yellow","relative","packageManager","determinePackageManager","addedNitro","project","moduleConfig","addNitroDependencyToLocalLibrary","linkedLocalLibrary","linkLocalLibrary","printLocalLibNextSteps","abortController","AbortController","Promise","race","createInitialGitCommit","signal","_resolve","reject","setTimeout","error","Error","abort","message","warn","printNonLocalLibNextSteps","catch","red"],"sources":["../src/index.ts"],"sourcesContent":["import pak from '../package.json';\nimport fs from 'fs-extra';\nimport kleur from 'kleur';\nimport ora from 'ora';\nimport path from 'path';\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 printLocalLibNextSteps,\n printNonLocalLibNextSteps,\n printUsedRNVersion,\n} from './inform';\nimport { prompt } from './prompt';\nimport { applyTemplates, generateTemplateConfiguration } from './template';\nimport { assertNpxExists } from './utils/assert';\nimport { configureTools } from './utils/configureTools';\nimport { createInitialGitCommit } from './utils/initialCommit';\nimport {\n addNitroDependencyToLocalLibrary,\n linkLocalLibrary,\n} from './utils/local';\nimport { determinePackageManager } from './utils/packageManager';\nimport { resolveNpmPackageVersion } from './utils/resolveNpmPackageVersion';\nimport { createMetadata } from './utils/createMetadata';\n\nasync function create() {\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 answers = await prompt.show({\n name: pak.name,\n version: pak.version,\n description: pak.description,\n });\n\n if (answers == null) {\n process.exit(0);\n }\n\n console.log(''); // Empty new line after prompts\n\n const bobVersion = await bobVersionPromise;\n const nitroModulesVersion =\n answers.type === 'nitro-module' || answers.type === 'nitro-view'\n ? await nitroModulesVersionPromise\n : undefined;\n\n const config = generateTemplateConfiguration({\n versions: {\n bob: bobVersion,\n nitro: 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 (\n answers.reactNativeVersion != null &&\n answers.reactNativeVersion !== SUPPORTED_REACT_NATIVE_VERSION\n ) {\n printUsedRNVersion(answers.reactNativeVersion, config);\n }\n\n const spinner = ora().start();\n\n if (config.example != null) {\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 != null) {\n await alignDependencyVersionsWithExampleApp(rootPackageJson, folder);\n }\n\n if (!answers.local) {\n spinner.text = 'Configuring tools';\n\n await configureTools({\n tools: answers.tools,\n config,\n root: folder,\n packageJson: rootPackageJson,\n });\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 spinner.text = 'Initializing git repository';\n\n try {\n const abortController = new AbortController();\n\n // Creating git repository can get stuck in some cases,\n // e.g. if git asks for ssh passphrase.\n // We abort it after a timeout so that this doesn't hang forever.\n await Promise.race([\n createInitialGitCommit(folder, abortController.signal),\n new Promise<void>((_resolve, reject) => {\n setTimeout(() => {\n const error = new Error('Creating git repository took too long');\n\n abortController.abort(error.message);\n reject(error);\n }, 5000);\n }),\n ]);\n } catch (error) {\n spinner.warn('Failed to create git repository');\n }\n\n printSuccessMessage();\n\n printNonLocalLibNextSteps(config);\n }\n}\n\ncreate().catch((e: unknown) => {\n console.log('\\n');\n console.log(kleur.red('× An error occurred while creating the project.\\n'));\n console.error(e);\n\n process.exit(1);\n});\n"],"mappings":";;AAAA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,MAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,IAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,KAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,UAAA,GAAAL,OAAA;AAKA,IAAAM,aAAA,GAAAN,OAAA;AACA,IAAAO,mBAAA,GAAAR,sBAAA,CAAAC,OAAA;AACA,IAAAQ,OAAA,GAAAR,OAAA;AAKA,IAAAS,OAAA,GAAAT,OAAA;AACA,IAAAU,SAAA,GAAAV,OAAA;AACA,IAAAW,OAAA,GAAAX,OAAA;AACA,IAAAY,eAAA,GAAAZ,OAAA;AACA,IAAAa,cAAA,GAAAb,OAAA;AACA,IAAAc,MAAA,GAAAd,OAAA;AAIA,IAAAe,eAAA,GAAAf,OAAA;AACA,IAAAgB,yBAAA,GAAAhB,OAAA;AACA,IAAAiB,eAAA,GAAAjB,OAAA;AAAwD,SAAAD,uBAAAmB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAExD,eAAeG,MAAMA,CAAA,EAAG;EACtB;EACA,MAAMC,iBAAiB,GAAG,IAAAC,kDAAwB,EAChD,0BAA0B,EAC1BC,+BACF,CAAC;EACD,MAAMC,0BAA0B,GAAG,IAAAF,kDAAwB,EACzD,4BAA4B,EAC5BG,yCACF,CAAC;EAED,MAAM,IAAAC,uBAAe,EAAC,CAAC;EAEvB,MAAMC,OAAO,GAAG,MAAMC,cAAM,CAACC,IAAI,CAAC;IAChCC,IAAI,EAAEC,gBAAG,CAACD,IAAI;IACdE,OAAO,EAAED,gBAAG,CAACC,OAAO;IACpBC,WAAW,EAAEF,gBAAG,CAACE;EACnB,CAAC,CAAC;EAEF,IAAIN,OAAO,IAAI,IAAI,EAAE;IACnBO,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;EACjB;EAEAC,OAAO,CAACC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;;EAEjB,MAAMC,UAAU,GAAG,MAAMjB,iBAAiB;EAC1C,MAAMkB,mBAAmB,GACvBZ,OAAO,CAACa,IAAI,KAAK,cAAc,IAAIb,OAAO,CAACa,IAAI,KAAK,YAAY,GAC5D,MAAMhB,0BAA0B,GAChCiB,SAAS;EAEf,MAAMC,MAAM,GAAG,IAAAC,uCAA6B,EAAC;IAC3CC,QAAQ,EAAE;MACRC,GAAG,EAAEP,UAAU;MACfQ,KAAK,EAAEP;IACT,CAAC;IACDQ,QAAQ,EAAEC,aAAI,CAACD,QAAQ,CAACpB,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACsB,SAAS,CAAC;IAC1DtB;EACF,CAAC,CAAC;EAEF,MAAMuB,MAAM,GAAGF,aAAI,CAACG,OAAO,CAACjB,OAAO,CAACkB,GAAG,CAAC,CAAC,EAAEzB,OAAO,CAACsB,SAAS,CAAC;EAE7D,MAAMI,gBAAE,CAACC,MAAM,CAACJ,MAAM,CAAC;EAEvB,IACEvB,OAAO,CAAC4B,kBAAkB,IAAI,IAAI,IAClC5B,OAAO,CAAC4B,kBAAkB,KAAKC,yCAA8B,EAC7D;IACA,IAAAC,0BAAkB,EAAC9B,OAAO,CAAC4B,kBAAkB,EAAEb,MAAM,CAAC;EACxD;EAEA,MAAMgB,OAAO,GAAG,IAAAC,YAAG,EAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EAE7B,IAAIlB,MAAM,CAACmB,OAAO,IAAI,IAAI,EAAE;IAC1BH,OAAO,CAACI,IAAI,GAAG,wBAAwB;IAEvC,MAAM,IAAAC,2BAAkB,EAAC;MACvBC,IAAI,EAAEd,MAAM;MACZK,kBAAkB,EAAE5B,OAAO,CAAC4B,kBAAkB;MAC9Cb;IACF,CAAC,CAAC;EACJ;EAEAgB,OAAO,CAACI,IAAI,GAAG,eAAe;EAE9B,MAAM,IAAAG,wBAAc,EAACtC,OAAO,EAAEe,MAAM,EAAEQ,MAAM,CAAC;EAE7C,MAAMgB,eAAe,GAAG,MAAMb,gBAAE,CAACc,QAAQ,CAACnB,aAAI,CAACoB,IAAI,CAAClB,MAAM,EAAE,cAAc,CAAC,CAAC;EAE5E,IAAIR,MAAM,CAACmB,OAAO,IAAI,IAAI,EAAE;IAC1B,MAAM,IAAAQ,mDAAqC,EAACH,eAAe,EAAEhB,MAAM,CAAC;EACtE;EAEA,IAAI,CAACvB,OAAO,CAAC2C,KAAK,EAAE;IAClBZ,OAAO,CAACI,IAAI,GAAG,mBAAmB;IAElC,MAAM,IAAAS,8BAAc,EAAC;MACnBC,KAAK,EAAE7C,OAAO,CAAC6C,KAAK;MACpB9B,MAAM;MACNsB,IAAI,EAAEd,MAAM;MACZuB,WAAW,EAAEP;IACf,CAAC,CAAC;EACJ;EAEA,MAAMQ,eAAe,GAAG,IAAAC,8BAAc,EAAChD,OAAO,CAAC;EAE/CuC,eAAe,CAAC,6BAA6B,CAAC,GAAGQ,eAAe;EAEhE,MAAMrB,gBAAE,CAACuB,SAAS,CAAC5B,aAAI,CAACoB,IAAI,CAAClB,MAAM,EAAE,cAAc,CAAC,EAAEgB,eAAe,EAAE;IACrEW,MAAM,EAAE;EACV,CAAC,CAAC;EAEF,MAAMC,mBAAmB,GAAGA,CAAA,KAC1BpB,OAAO,CAACqB,OAAO,CACb,mCAAmCC,cAAK,CAACC,MAAM,CAC7CjC,aAAI,CAACkC,QAAQ,CAAChD,OAAO,CAACkB,GAAG,CAAC,CAAC,EAAEF,MAAM,CACrC,CAAC,KACH,CAAC;EAEH,IAAIvB,OAAO,CAAC2C,KAAK,EAAE;IACjB,MAAMa,cAAc,GAAG,MAAM,IAAAC,uCAAuB,EAAC,CAAC;IAEtD,IAAIC,UAAU,GAAG,KAAK;IAEtB,IAAI3C,MAAM,CAAC4C,OAAO,CAACC,YAAY,KAAK,eAAe,EAAE;MACnDF,UAAU,GAAG,MAAM,IAAAG,uCAAgC,EAAC9C,MAAM,CAAC;IAC7D;IAEA,MAAM+C,kBAAkB,GAAG,MAAM,IAAAC,uBAAgB,EAC/ChD,MAAM,EACNQ,MAAM,EACNiC,cACF,CAAC;IAEDL,mBAAmB,CAAC,CAAC;IAErB,IAAAa,8BAAsB,EAAC;MACrBjD,MAAM;MACNyC,cAAc;MACdM,kBAAkB;MAClBJ,UAAU;MACVnC;IACF,CAAC,CAAC;EACJ,CAAC,MAAM;IACLQ,OAAO,CAACI,IAAI,GAAG,6BAA6B;IAE5C,IAAI;MACF,MAAM8B,eAAe,GAAG,IAAIC,eAAe,CAAC,CAAC;;MAE7C;MACA;MACA;MACA,MAAMC,OAAO,CAACC,IAAI,CAAC,CACjB,IAAAC,qCAAsB,EAAC9C,MAAM,EAAE0C,eAAe,CAACK,MAAM,CAAC,EACtD,IAAIH,OAAO,CAAO,CAACI,QAAQ,EAAEC,MAAM,KAAK;QACtCC,UAAU,CAAC,MAAM;UACf,MAAMC,KAAK,GAAG,IAAIC,KAAK,CAAC,uCAAuC,CAAC;UAEhEV,eAAe,CAACW,KAAK,CAACF,KAAK,CAACG,OAAO,CAAC;UACpCL,MAAM,CAACE,KAAK,CAAC;QACf,CAAC,EAAE,IAAI,CAAC;MACV,CAAC,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,OAAOA,KAAK,EAAE;MACd3C,OAAO,CAAC+C,IAAI,CAAC,iCAAiC,CAAC;IACjD;IAEA3B,mBAAmB,CAAC,CAAC;IAErB,IAAA4B,iCAAyB,EAAChE,MAAM,CAAC;EACnC;AACF;AAEAtB,MAAM,CAAC,CAAC,CAACuF,KAAK,CAAE1F,CAAU,IAAK;EAC7BmB,OAAO,CAACC,GAAG,CAAC,IAAI,CAAC;EACjBD,OAAO,CAACC,GAAG,CAAC2C,cAAK,CAAC4B,GAAG,CAAC,mDAAmD,CAAC,CAAC;EAC3ExE,OAAO,CAACiE,KAAK,CAACpF,CAAC,CAAC;EAEhBiB,OAAO,CAACC,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC","ignoreList":[]}
@@ -9,6 +9,7 @@ var _fsExtra = _interopRequireDefault(require("fs-extra"));
9
9
  var _nodePath = _interopRequireDefault(require("node:path"));
10
10
  var _template = require("../template");
11
11
  var _sortObjectKeys = _interopRequireDefault(require("./sortObjectKeys"));
12
+ var _constants = require("../constants");
12
13
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
14
  const ESLINT = {
14
15
  name: 'ESLint with Prettier',
@@ -28,7 +29,7 @@ const ESLINT = {
28
29
  '@eslint/compat': '^1.3.2',
29
30
  '@eslint/eslintrc': '^3.3.1',
30
31
  '@eslint/js': '^9.35.0',
31
- '@react-native/eslint-config': '^0.81.1',
32
+ '@react-native/eslint-config': _constants.SUPPORTED_REACT_NATIVE_VERSION,
32
33
  'eslint-config-prettier': '^10.1.8',
33
34
  'eslint-plugin-prettier': '^5.5.4',
34
35
  'eslint': '^9.35.0',
@@ -118,7 +119,7 @@ const AVAILABLE_TOOLS = exports.AVAILABLE_TOOLS = {
118
119
  'release-it': RELEASE_IT
119
120
  };
120
121
  const REQUIRED_TOOLS = {
121
- turbo: TURBOREPO
122
+ turborepo: TURBOREPO
122
123
  };
123
124
  const ALL_TOOLS = {
124
125
  ...AVAILABLE_TOOLS,
@@ -1 +1 @@
1
- {"version":3,"file":"configureTools.js","names":["_fsExtra","_interopRequireDefault","require","_nodePath","_template","_sortObjectKeys","e","__esModule","default","ESLINT","name","description","package","scripts","lint","prettier","quoteProps","singleQuote","tabWidth","trailingComma","useTabs","devDependencies","LEFTHOOK","commitlint","extends","RELEASE_IT","release","git","commitMessage","tagName","npm","publish","github","plugins","preset","JEST","test","jest","modulePathIgnorePatterns","TURBOREPO","turbo","condition","config","example","AVAILABLE_TOOLS","exports","REQUIRED_TOOLS","ALL_TOOLS","configureTools","tools","root","packageJson","key","Object","keys","Error","join","tool","files","path","resolve","__dirname","fs","existsSync","applyTemplate","value","entries","Array","isArray","sortObjectKeys","String"],"sources":["../../src/utils/configureTools.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'node:path';\nimport { applyTemplate, type TemplateConfiguration } from '../template';\nimport sortObjectKeys from './sortObjectKeys';\n\ntype Tool = {\n name: string;\n description: string;\n package: Record<string, unknown>;\n condition?: (config: TemplateConfiguration) => boolean;\n};\n\ntype Options = {\n tools: string[];\n root: string;\n packageJson: Record<string, unknown>;\n config: TemplateConfiguration;\n};\n\nconst ESLINT = {\n name: 'ESLint with Prettier',\n description: 'Lint and format code',\n package: {\n scripts: {\n lint: 'eslint \"**/*.{js,ts,tsx}\"',\n },\n prettier: {\n quoteProps: 'consistent',\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'es5',\n useTabs: false,\n },\n devDependencies: {\n '@eslint/compat': '^1.3.2',\n '@eslint/eslintrc': '^3.3.1',\n '@eslint/js': '^9.35.0',\n '@react-native/eslint-config': '^0.81.1',\n 'eslint-config-prettier': '^10.1.8',\n 'eslint-plugin-prettier': '^5.5.4',\n 'eslint': '^9.35.0',\n 'prettier': '^2.8.8',\n },\n },\n};\n\nconst LEFTHOOK = {\n name: 'Lefthook with Commitlint',\n description: 'Manage Git hooks and lint commit messages',\n package: {\n commitlint: {\n extends: ['@commitlint/config-conventional'],\n },\n devDependencies: {\n '@commitlint/config-conventional': '^19.8.1',\n 'commitlint': '^19.8.1',\n 'lefthook': '^2.0.3',\n },\n },\n};\n\nconst RELEASE_IT = {\n name: 'Release It',\n description: 'Automate versioning and package publishing tasks',\n package: {\n 'scripts': {\n release: 'release-it --only-version',\n },\n 'release-it': {\n git: {\n // eslint-disable-next-line no-template-curly-in-string\n commitMessage: 'chore: release ${version}',\n // eslint-disable-next-line no-template-curly-in-string\n tagName: 'v${version}',\n },\n npm: {\n publish: true,\n },\n github: {\n release: true,\n },\n plugins: {\n '@release-it/conventional-changelog': {\n preset: {\n name: 'angular',\n },\n },\n },\n },\n 'devDependencies': {\n 'release-it': '^19.0.4',\n '@release-it/conventional-changelog': '^10.0.1',\n },\n },\n};\n\nconst JEST = {\n name: 'Jest',\n description: 'Test JavaScript and TypeScript code',\n package: {\n scripts: {\n test: 'jest',\n },\n jest: {\n preset: 'react-native',\n modulePathIgnorePatterns: [\n '<rootDir>/example/node_modules',\n '<rootDir>/lib/',\n ],\n },\n devDependencies: {\n '@types/jest': '^29.5.14',\n 'jest': '^29.7.0',\n },\n },\n};\n\nconst TURBOREPO = {\n name: 'Turborepo',\n description: 'Cache build outputs on CI',\n package: {\n devDependencies: {\n turbo: '^2.5.6',\n },\n },\n condition: (config: TemplateConfiguration) => config.example !== 'expo',\n};\n\nexport const AVAILABLE_TOOLS = {\n 'eslint': ESLINT,\n 'jest': JEST,\n 'lefthook': LEFTHOOK,\n 'release-it': RELEASE_IT,\n} as const satisfies Record<string, Tool>;\n\nconst REQUIRED_TOOLS = {\n turbo: TURBOREPO,\n} as const satisfies Record<string, Tool>;\n\nconst ALL_TOOLS = {\n ...AVAILABLE_TOOLS,\n ...REQUIRED_TOOLS,\n} as const;\n\nexport async function configureTools({\n tools,\n config,\n root,\n packageJson,\n}: Options) {\n for (const key of [\n ...tools,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n ...(Object.keys(REQUIRED_TOOLS) as (keyof typeof REQUIRED_TOOLS)[]),\n ]) {\n if (!(key in ALL_TOOLS)) {\n throw new Error(\n `Invalid tool '${key}'. Available tools are: ${Object.keys(\n AVAILABLE_TOOLS\n ).join(', ')}.`\n );\n }\n\n // @ts-expect-error: We checked the key above\n const tool: Tool = ALL_TOOLS[key];\n\n if (tool.condition && !tool.condition(config)) {\n continue;\n }\n\n const files = path.resolve(__dirname, `../../templates/tools/${key}`);\n\n if (fs.existsSync(files)) {\n await applyTemplate(config, files, root);\n }\n\n for (const [key, value] of Object.entries(tool.package)) {\n if (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value)\n ) {\n if (typeof packageJson[key] === 'object' || packageJson[key] == null) {\n packageJson[key] = {\n ...packageJson[key],\n ...value,\n };\n\n if (\n key === 'dependencies' ||\n key === 'devDependencies' ||\n key === 'peerDependencies'\n ) {\n // @ts-expect-error: We know they are objects here\n packageJson[key] = sortObjectKeys(packageJson[key]);\n }\n } else {\n throw new Error(\n `Cannot merge '${key}' field because it is not an object (got '${String(packageJson[key])}').`\n );\n }\n } else {\n packageJson[key] = value;\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"configureTools.js","names":["_fsExtra","_interopRequireDefault","require","_nodePath","_template","_sortObjectKeys","_constants","e","__esModule","default","ESLINT","name","description","package","scripts","lint","prettier","quoteProps","singleQuote","tabWidth","trailingComma","useTabs","devDependencies","SUPPORTED_REACT_NATIVE_VERSION","LEFTHOOK","commitlint","extends","RELEASE_IT","release","git","commitMessage","tagName","npm","publish","github","plugins","preset","JEST","test","jest","modulePathIgnorePatterns","TURBOREPO","turbo","condition","config","example","AVAILABLE_TOOLS","exports","REQUIRED_TOOLS","turborepo","ALL_TOOLS","configureTools","tools","root","packageJson","key","Object","keys","Error","join","tool","files","path","resolve","__dirname","fs","existsSync","applyTemplate","value","entries","Array","isArray","sortObjectKeys","String"],"sources":["../../src/utils/configureTools.ts"],"sourcesContent":["import fs from 'fs-extra';\nimport path from 'node:path';\nimport { applyTemplate, type TemplateConfiguration } from '../template';\nimport sortObjectKeys from './sortObjectKeys';\nimport { SUPPORTED_REACT_NATIVE_VERSION } from '../constants';\n\ntype Tool = {\n name: string;\n description: string;\n package: Record<string, unknown>;\n condition?: (config: TemplateConfiguration) => boolean;\n};\n\ntype Options = {\n tools: string[];\n root: string;\n packageJson: Record<string, unknown>;\n config: TemplateConfiguration;\n};\n\nconst ESLINT = {\n name: 'ESLint with Prettier',\n description: 'Lint and format code',\n package: {\n scripts: {\n lint: 'eslint \"**/*.{js,ts,tsx}\"',\n },\n prettier: {\n quoteProps: 'consistent',\n singleQuote: true,\n tabWidth: 2,\n trailingComma: 'es5',\n useTabs: false,\n },\n devDependencies: {\n '@eslint/compat': '^1.3.2',\n '@eslint/eslintrc': '^3.3.1',\n '@eslint/js': '^9.35.0',\n '@react-native/eslint-config': SUPPORTED_REACT_NATIVE_VERSION,\n 'eslint-config-prettier': '^10.1.8',\n 'eslint-plugin-prettier': '^5.5.4',\n 'eslint': '^9.35.0',\n 'prettier': '^2.8.8',\n },\n },\n};\n\nconst LEFTHOOK = {\n name: 'Lefthook with Commitlint',\n description: 'Manage Git hooks and lint commit messages',\n package: {\n commitlint: {\n extends: ['@commitlint/config-conventional'],\n },\n devDependencies: {\n '@commitlint/config-conventional': '^19.8.1',\n 'commitlint': '^19.8.1',\n 'lefthook': '^2.0.3',\n },\n },\n};\n\nconst RELEASE_IT = {\n name: 'Release It',\n description: 'Automate versioning and package publishing tasks',\n package: {\n 'scripts': {\n release: 'release-it --only-version',\n },\n 'release-it': {\n git: {\n // eslint-disable-next-line no-template-curly-in-string\n commitMessage: 'chore: release ${version}',\n // eslint-disable-next-line no-template-curly-in-string\n tagName: 'v${version}',\n },\n npm: {\n publish: true,\n },\n github: {\n release: true,\n },\n plugins: {\n '@release-it/conventional-changelog': {\n preset: {\n name: 'angular',\n },\n },\n },\n },\n 'devDependencies': {\n 'release-it': '^19.0.4',\n '@release-it/conventional-changelog': '^10.0.1',\n },\n },\n};\n\nconst JEST = {\n name: 'Jest',\n description: 'Test JavaScript and TypeScript code',\n package: {\n scripts: {\n test: 'jest',\n },\n jest: {\n preset: 'react-native',\n modulePathIgnorePatterns: [\n '<rootDir>/example/node_modules',\n '<rootDir>/lib/',\n ],\n },\n devDependencies: {\n '@types/jest': '^29.5.14',\n 'jest': '^29.7.0',\n },\n },\n};\n\nconst TURBOREPO = {\n name: 'Turborepo',\n description: 'Cache build outputs on CI',\n package: {\n devDependencies: {\n turbo: '^2.5.6',\n },\n },\n condition: (config: TemplateConfiguration) => config.example !== 'expo',\n};\n\nexport const AVAILABLE_TOOLS = {\n 'eslint': ESLINT,\n 'jest': JEST,\n 'lefthook': LEFTHOOK,\n 'release-it': RELEASE_IT,\n} as const satisfies Record<string, Tool>;\n\nconst REQUIRED_TOOLS = {\n turborepo: TURBOREPO,\n} as const satisfies Record<string, Tool>;\n\nconst ALL_TOOLS = {\n ...AVAILABLE_TOOLS,\n ...REQUIRED_TOOLS,\n} as const;\n\nexport async function configureTools({\n tools,\n config,\n root,\n packageJson,\n}: Options) {\n for (const key of [\n ...tools,\n // eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion\n ...(Object.keys(REQUIRED_TOOLS) as (keyof typeof REQUIRED_TOOLS)[]),\n ]) {\n if (!(key in ALL_TOOLS)) {\n throw new Error(\n `Invalid tool '${key}'. Available tools are: ${Object.keys(\n AVAILABLE_TOOLS\n ).join(', ')}.`\n );\n }\n\n // @ts-expect-error: We checked the key above\n const tool: Tool = ALL_TOOLS[key];\n\n if (tool.condition && !tool.condition(config)) {\n continue;\n }\n\n const files = path.resolve(__dirname, `../../templates/tools/${key}`);\n\n if (fs.existsSync(files)) {\n await applyTemplate(config, files, root);\n }\n\n for (const [key, value] of Object.entries(tool.package)) {\n if (\n typeof value === 'object' &&\n value !== null &&\n !Array.isArray(value)\n ) {\n if (typeof packageJson[key] === 'object' || packageJson[key] == null) {\n packageJson[key] = {\n ...packageJson[key],\n ...value,\n };\n\n if (\n key === 'dependencies' ||\n key === 'devDependencies' ||\n key === 'peerDependencies'\n ) {\n // @ts-expect-error: We know they are objects here\n packageJson[key] = sortObjectKeys(packageJson[key]);\n }\n } else {\n throw new Error(\n `Cannot merge '${key}' field because it is not an object (got '${String(packageJson[key])}').`\n );\n }\n } else {\n packageJson[key] = value;\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-react-native-library",
3
- "version": "0.55.2",
3
+ "version": "0.56.0",
4
4
  "description": "CLI to scaffold React Native libraries",
5
5
  "keywords": [
6
6
  "react-native",
@@ -48,7 +48,7 @@
48
48
  "github-username": "^6.0.0",
49
49
  "kleur": "^4.1.4",
50
50
  "ora": "^5.4.1",
51
- "pigment": "^0.3.10",
51
+ "pigment": "^0.3.11",
52
52
  "validate-npm-package-name": "^4.0.0"
53
53
  },
54
54
  "devDependencies": {
@@ -63,5 +63,5 @@
63
63
  "@types/fs-extra": "^9.0.13",
64
64
  "@types/validate-npm-package-name": "^3.0.3"
65
65
  },
66
- "gitHead": "d91c82aa73bcedb7f5364adb0c15ce1f7a486f6e"
66
+ "gitHead": "674ccc16f182e55b5086ba7c26a6b82318de2fc1"
67
67
  }
@@ -69,17 +69,14 @@
69
69
  "registry": "https://registry.npmjs.org/"
70
70
  },
71
71
  "devDependencies": {
72
- <% if (example === 'vanilla' && (project.moduleConfig === 'turbo-modules' || project.viewConfig === 'fabric-view')) { -%>
73
- "@react-native-community/cli": "20.0.1",
74
- <% } -%>
75
- "@react-native/babel-preset": "0.81.1",
72
+ "@react-native/babel-preset": "0.83.0",
76
73
  "@types/react": "^19.1.12",
77
74
  "del-cli": "^6.0.0",
78
75
  <% if (project.moduleConfig === 'nitro-modules' || project.viewConfig === 'nitro-view') { -%>
79
76
  "nitrogen": "^<%- versions.nitro %>",
80
77
  <% } -%>
81
78
  "react": "19.1.0",
82
- "react-native": "0.81.1",
79
+ "react-native": "0.83.0",
83
80
  "react-native-builder-bob": "^<%- versions.bob %>",
84
81
  <% if (project.moduleConfig === 'nitro-modules' || project.viewConfig === 'nitro-view') { -%>
85
82
  "react-native-nitro-modules": "^<%- versions.nitro %>",
@@ -1,14 +1,14 @@
1
1
  package com.margelo.nitro.<%- project.package %>
2
2
 
3
- import com.facebook.react.TurboReactPackage
3
+ import com.facebook.react.BaseReactPackage
4
4
  import com.facebook.react.bridge.NativeModule
5
5
  import com.facebook.react.bridge.ReactApplicationContext
6
6
  import com.facebook.react.module.model.ReactModuleInfoProvider
7
7
  import com.facebook.react.uimanager.ViewManager
8
8
 
9
- import <%- project.package_cpp -%>.views.Hybrid<%- project.name -%>Manager
9
+ import com.margelo.nitro.<%- project.package %>.views.Hybrid<%- project.name -%>Manager
10
10
 
11
- class <%- project.name -%>Package : TurboReactPackage() {
11
+ class <%- project.name -%>Package : BaseReactPackage() {
12
12
  override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? {
13
13
  return null
14
14
  }
@@ -22,6 +22,7 @@
22
22
  "build:ios": {
23
23
  "env": [
24
24
  "RCT_NEW_ARCH_ENABLED",
25
+ "RCT_REMOVE_LEGACY_ARCH",
25
26
  "RCT_USE_RN_DEP",
26
27
  "RCT_USE_PREBUILT_RNCORE"
27
28
  ],
@@ -1,44 +0,0 @@
1
- {
2
- "$schema": "https://turbo.build/schema.json",
3
- "globalDependencies": [".nvmrc", ".yarnrc.yml"],
4
- "globalEnv": ["NODE_ENV"],
5
- "tasks": {
6
- <% if (example !== 'expo') { -%>
7
- "build:android": {
8
- "env": ["ANDROID_HOME", "ORG_GRADLE_PROJECT_newArchEnabled"],
9
- "inputs": [
10
- "package.json",
11
- "android",
12
- "!android/build",
13
- "src/*.ts",
14
- "src/*.tsx",
15
- "example/package.json",
16
- "example/android",
17
- "!example/android/.gradle",
18
- "!example/android/build",
19
- "!example/android/app/build"
20
- ],
21
- "outputs": []
22
- },
23
- "build:ios": {
24
- "env": [
25
- "RCT_NEW_ARCH_ENABLED",
26
- "RCT_USE_RN_DEP",
27
- "RCT_USE_PREBUILT_RNCORE"
28
- ],
29
- "inputs": [
30
- "package.json",
31
- "*.podspec",
32
- "ios",
33
- "src/*.ts",
34
- "src/*.tsx",
35
- "example/package.json",
36
- "example/ios",
37
- "!example/ios/build",
38
- "!example/ios/Pods"
39
- ],
40
- "outputs": []
41
- }
42
- <% } -%>
43
- }
44
- }