@speleotica/frcsdata 5.0.2 → 5.1.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.
@@ -1,4 +1,5 @@
1
1
  export declare function replaceSurveyNames(surveyFile: string, replacementsFile: string, options?: {
2
2
  verbose?: boolean;
3
+ write?: boolean;
3
4
  }): Promise<void>;
4
5
  //# sourceMappingURL=replace-names.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"replace-names.d.ts","sourceRoot":"","sources":["../../src/cli/replace-names.ts"],"names":[],"mappings":"AAUA,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,iBAkEF"}
1
+ {"version":3,"file":"replace-names.d.ts","sourceRoot":"","sources":["../../src/cli/replace-names.ts"],"names":[],"mappings":"AAWA,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EACxB,OAAO,CAAC,EAAE;IACR,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB,iBAuEF"}
@@ -11,6 +11,7 @@ var _ZodFrcsSurveyFileToJson = require("../survey/ZodFrcsSurveyFileToJson.js");
11
11
  var _unwrapInvalid = require("../unwrapInvalid.js");
12
12
  var _parseNamesFile = require("./parseNamesFile.js");
13
13
  var _readFile = require("./readFile.js");
14
+ var _promises = require("fs/promises");
14
15
  var _chalk = _interopRequireDefault(require("chalk"));
15
16
  var _compareNames = require("./compareNames.js");
16
17
  /* eslint-disable no-console */
@@ -52,8 +53,13 @@ async function replaceSurveyNames(surveyFile, replacementsFile, options) {
52
53
  }
53
54
  }
54
55
  }
55
- process.stdout.write((0, _replaceRanges.replaceRanges)(source, replacements));
56
- console.error(_chalk.default.yellow(`replaced ${replacedNames.size} ${replacedNames.size === 1 ? '' : 's'} in ${replacementCount} location${replacementCount === 1 ? '' : 's'}`));
56
+ const replaced = (0, _replaceRanges.replaceRanges)(source, replacements);
57
+ if (options?.write) {
58
+ await (0, _promises.writeFile)(surveyFile, replaced, 'utf8');
59
+ } else {
60
+ process.stdout.write(replaced);
61
+ }
62
+ console.error(_chalk.default.yellow(`replaced ${replacedNames.size} name${replacedNames.size === 1 ? '' : 's'} in ${replacementCount} location${replacementCount === 1 ? '' : 's'}`));
57
63
  console.error(unreplacedNames.size ? _chalk.default.yellow(`${unreplacedNames.size} name replacement${unreplacedNames.size === 1 ? ' was' : 's were'} unused${options?.verbose ? ':' : ''}`) : _chalk.default.green('all name replacements were used'));
58
64
  if (options?.verbose) {
59
65
  for (const name of [...unreplacedNames].sort(_compareNames.compareNames)) {
@@ -1 +1 @@
1
- {"version":3,"file":"replace-names.js","names":["_parseFrcsSurveyFile","_interopRequireDefault","require","_replaceRanges","_ZodFrcsSurveyFileToJson","_unwrapInvalid","_parseNamesFile","_readFile","_chalk","_compareNames","replaceSurveyNames","surveyFile","replacementsFile","options","source","readFile","parsed","ZodValidOrInvalidFrcsSurveyFileToJson","parse","parseFrcsSurveyFile","normalizeNames","includeLocs","names","parseNamesFile","unreplacedNames","Set","entries","flatMap","name","replacement","replacedNames","replacementCount","replacements","trip","unwrapInvalid","trips","team","locs","teamLocs","header","i","length","loc","get","delete","add","push","start","index","end","value","process","stdout","write","replaceRanges","console","error","chalk","yellow","size","verbose","green","sort","compareNames"],"sources":["../../src/cli/replace-names.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport parseFrcsSurveyFile from '../survey/parseFrcsSurveyFile'\nimport { replaceRanges } from '../replaceRanges'\nimport { ZodValidOrInvalidFrcsSurveyFileToJson } from '../survey/ZodFrcsSurveyFileToJson'\nimport { unwrapInvalid } from '../unwrapInvalid'\nimport { parseNamesFile } from './parseNamesFile'\nimport { readFile } from './readFile'\nimport chalk from 'chalk'\nimport { compareNames } from './compareNames'\n\nexport async function replaceSurveyNames(\n surveyFile: string,\n replacementsFile: string,\n options?: {\n verbose?: boolean\n }\n) {\n const source = await readFile(surveyFile)\n const parsed = ZodValidOrInvalidFrcsSurveyFileToJson.parse(\n await parseFrcsSurveyFile(surveyFile, [source], {\n normalizeNames: false,\n includeLocs: true,\n })\n )\n const names = await parseNamesFile(await readFile(replacementsFile))\n\n const unreplacedNames = new Set<string>(\n [...names.entries()].flatMap(([name, { replacement }]) =>\n replacement ? name : []\n )\n )\n const replacedNames = new Set<string>()\n let replacementCount = 0\n\n const replacements: { start: number; end: number; value: string }[] = []\n for (const trip of unwrapInvalid(parsed).trips) {\n const { team, locs: { team: teamLocs } = {} } = unwrapInvalid(\n unwrapInvalid(trip).header\n )\n if (!team || !teamLocs) continue\n for (let i = 0; i < team.length; i++) {\n const name = team[i]\n const loc = teamLocs[i]\n const replacement = names.get(name)?.replacement\n if (replacement && loc) {\n unreplacedNames.delete(name)\n replacedNames.add(name)\n replacementCount++\n replacements.push({\n start: loc.start.index,\n end: loc.end.index,\n value: replacement,\n })\n }\n }\n }\n\n process.stdout.write(replaceRanges(source, replacements))\n console.error(\n chalk.yellow(\n `replaced ${replacedNames.size} ${\n replacedNames.size === 1 ? '' : 's'\n } in ${replacementCount} location${replacementCount === 1 ? '' : 's'}`\n )\n )\n console.error(\n unreplacedNames.size\n ? chalk.yellow(\n `${unreplacedNames.size} name replacement${\n unreplacedNames.size === 1 ? ' was' : 's were'\n } unused${options?.verbose ? ':' : ''}`\n )\n : chalk.green('all name replacements were used')\n )\n if (options?.verbose) {\n for (const name of [...unreplacedNames].sort(compareNames)) {\n console.error(\n chalk.yellow(` ${name} => ${names.get(name)?.replacement}`)\n )\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"replace-names.js","names":["_parseFrcsSurveyFile","_interopRequireDefault","require","_replaceRanges","_ZodFrcsSurveyFileToJson","_unwrapInvalid","_parseNamesFile","_readFile","_promises","_chalk","_compareNames","replaceSurveyNames","surveyFile","replacementsFile","options","source","readFile","parsed","ZodValidOrInvalidFrcsSurveyFileToJson","parse","parseFrcsSurveyFile","normalizeNames","includeLocs","names","parseNamesFile","unreplacedNames","Set","entries","flatMap","name","replacement","replacedNames","replacementCount","replacements","trip","unwrapInvalid","trips","team","locs","teamLocs","header","i","length","loc","get","delete","add","push","start","index","end","value","replaced","replaceRanges","write","writeFile","process","stdout","console","error","chalk","yellow","size","verbose","green","sort","compareNames"],"sources":["../../src/cli/replace-names.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport parseFrcsSurveyFile from '../survey/parseFrcsSurveyFile'\nimport { replaceRanges } from '../replaceRanges'\nimport { ZodValidOrInvalidFrcsSurveyFileToJson } from '../survey/ZodFrcsSurveyFileToJson'\nimport { unwrapInvalid } from '../unwrapInvalid'\nimport { parseNamesFile } from './parseNamesFile'\nimport { readFile } from './readFile'\nimport { writeFile } from 'fs/promises'\nimport chalk from 'chalk'\nimport { compareNames } from './compareNames'\n\nexport async function replaceSurveyNames(\n surveyFile: string,\n replacementsFile: string,\n options?: {\n verbose?: boolean\n write?: boolean\n }\n) {\n const source = await readFile(surveyFile)\n const parsed = ZodValidOrInvalidFrcsSurveyFileToJson.parse(\n await parseFrcsSurveyFile(surveyFile, [source], {\n normalizeNames: false,\n includeLocs: true,\n })\n )\n const names = await parseNamesFile(await readFile(replacementsFile))\n\n const unreplacedNames = new Set<string>(\n [...names.entries()].flatMap(([name, { replacement }]) =>\n replacement ? name : []\n )\n )\n const replacedNames = new Set<string>()\n let replacementCount = 0\n\n const replacements: { start: number; end: number; value: string }[] = []\n for (const trip of unwrapInvalid(parsed).trips) {\n const { team, locs: { team: teamLocs } = {} } = unwrapInvalid(\n unwrapInvalid(trip).header\n )\n if (!team || !teamLocs) continue\n for (let i = 0; i < team.length; i++) {\n const name = team[i]\n const loc = teamLocs[i]\n const replacement = names.get(name)?.replacement\n if (replacement && loc) {\n unreplacedNames.delete(name)\n replacedNames.add(name)\n replacementCount++\n replacements.push({\n start: loc.start.index,\n end: loc.end.index,\n value: replacement,\n })\n }\n }\n }\n\n const replaced = replaceRanges(source, replacements)\n if (options?.write) {\n await writeFile(surveyFile, replaced, 'utf8')\n } else {\n process.stdout.write(replaced)\n }\n console.error(\n chalk.yellow(\n `replaced ${replacedNames.size} name${\n replacedNames.size === 1 ? '' : 's'\n } in ${replacementCount} location${replacementCount === 1 ? '' : 's'}`\n )\n )\n console.error(\n unreplacedNames.size\n ? chalk.yellow(\n `${unreplacedNames.size} name replacement${\n unreplacedNames.size === 1 ? ' was' : 's were'\n } unused${options?.verbose ? ':' : ''}`\n )\n : chalk.green('all name replacements were used')\n )\n if (options?.verbose) {\n for (const name of [...unreplacedNames].sort(compareNames)) {\n console.error(\n chalk.yellow(` ${name} => ${names.get(name)?.replacement}`)\n )\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
package/cli.js CHANGED
@@ -91,17 +91,23 @@ void (0, _yargs.default)(process.argv.slice(2)).scriptName('frcsdata').command({
91
91
  }).option('verbose', {
92
92
  alias: 'v',
93
93
  type: 'boolean'
94
+ }).option('write', {
95
+ alias: 'w',
96
+ describe: 'overwrite survey file with replacements',
97
+ type: 'boolean'
94
98
  }),
95
99
  handler: async ({
96
100
  surveyFile,
97
101
  replacementsFile,
98
- verbose
102
+ verbose,
103
+ write
99
104
  }) => {
100
105
  const {
101
106
  replaceSurveyNames: replaceNames
102
107
  } = await Promise.resolve().then(() => _interopRequireWildcard(require("./cli/replace-names.js")));
103
108
  await replaceNames(surveyFile, replacementsFile, {
104
- verbose
109
+ verbose,
110
+ write
105
111
  });
106
112
  }
107
113
  }).command({
package/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","names":["_yargs","_interopRequireDefault","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","yargs","process","argv","slice","scriptName","command","describe","builder","positional","type","demandOption","handler","file","checkSurvey","Promise","resolve","then","parseSurvey","summarizeSurvey","option","alias","counts","suggestReplacements","listSurveyNames","listNames","includeCounts","surveyFile","replacementsFile","verbose","replaceSurveyNames","replaceNames","array","namesFiles","mergeNamesFiles","summaryFile","checkSurveyCorrespondence","demandCommand"],"sources":["src/cli.ts"],"sourcesContent":["import yargs from 'yargs/yargs'\n\nvoid yargs(process.argv.slice(2))\n .scriptName('frcsdata')\n .command({\n command: 'check <file>',\n describe: 'check survey file for errors or warnings',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { checkSurvey } = await import('./cli/check')\n await checkSurvey(file)\n },\n })\n .command({\n command: 'parse <file>',\n describe: 'parse survey file and output JSON parse tree',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { parseSurvey } = await import('./cli/parse-survey')\n await parseSurvey(file)\n },\n })\n .command({\n command: 'summarize <file>',\n describe: 'parse survey file and output trip summaries',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { summarizeSurvey } = await import('./cli/summarize')\n await summarizeSurvey(file)\n },\n })\n .command({\n command: 'list-names <file>',\n describe: 'parse survey file and output surveyor name/count table',\n builder: (yargs) =>\n yargs\n .positional('file', {\n type: 'string',\n demandOption: true,\n })\n .option('counts', {\n alias: 'c',\n type: 'boolean',\n describe: 'count the number of occurrences of each name',\n demandOption: false,\n })\n .option('suggest-replacements', {\n alias: 's',\n type: 'boolean',\n describe: 'output suggested replacements',\n demandOption: false,\n }),\n handler: async ({ file, counts, suggestReplacements }) => {\n const { listSurveyNames: listNames } = await import('./cli/list-names')\n await listNames(file, { includeCounts: counts, suggestReplacements })\n },\n })\n .command({\n command: 'replace-names <surveyFile> <replacementsFile>',\n describe: 'replace names survey file',\n builder: (yargs) =>\n yargs\n .positional('surveyFile', {\n type: 'string',\n demandOption: true,\n })\n .positional('replacementsFile', {\n type: 'string',\n demandOption: true,\n })\n .option('verbose', {\n alias: 'v',\n type: 'boolean',\n }),\n handler: async ({ surveyFile, replacementsFile, verbose }) => {\n const { replaceSurveyNames: replaceNames } = await import(\n './cli/replace-names'\n )\n await replaceNames(surveyFile, replacementsFile, { verbose })\n },\n })\n .command({\n command: 'merge-names-files <namesFiles..>',\n describe: 'merge two or more names files',\n builder: (yargs) =>\n yargs.positional('namesFiles', {\n type: 'string',\n array: true,\n demandOption: true,\n }),\n handler: async ({ namesFiles }) => {\n const { mergeNamesFiles } = await import('./cli/merge-names-files')\n await mergeNamesFiles(...namesFiles)\n },\n })\n .command({\n command: 'check-correspondence <surveyFile> <summaryFile>',\n describe: 'parse survey file and output trip summaries',\n builder: (yargs) =>\n yargs\n .positional('surveyFile', {\n type: 'string',\n demandOption: true,\n })\n .positional('summaryFile', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ surveyFile, summaryFile }) => {\n const { checkSurveyCorrespondence } = await import(\n './cli/check-correspondence'\n )\n await checkSurveyCorrespondence(surveyFile, summaryFile)\n },\n })\n .demandCommand().argv\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"cli.js","names":["_yargs","_interopRequireDefault","require","_getRequireWildcardCache","e","WeakMap","r","t","_interopRequireWildcard","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","yargs","process","argv","slice","scriptName","command","describe","builder","positional","type","demandOption","handler","file","checkSurvey","Promise","resolve","then","parseSurvey","summarizeSurvey","option","alias","counts","suggestReplacements","listSurveyNames","listNames","includeCounts","surveyFile","replacementsFile","verbose","write","replaceSurveyNames","replaceNames","array","namesFiles","mergeNamesFiles","summaryFile","checkSurveyCorrespondence","demandCommand"],"sources":["src/cli.ts"],"sourcesContent":["import yargs from 'yargs/yargs'\n\nvoid yargs(process.argv.slice(2))\n .scriptName('frcsdata')\n .command({\n command: 'check <file>',\n describe: 'check survey file for errors or warnings',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { checkSurvey } = await import('./cli/check')\n await checkSurvey(file)\n },\n })\n .command({\n command: 'parse <file>',\n describe: 'parse survey file and output JSON parse tree',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { parseSurvey } = await import('./cli/parse-survey')\n await parseSurvey(file)\n },\n })\n .command({\n command: 'summarize <file>',\n describe: 'parse survey file and output trip summaries',\n builder: (yargs) =>\n yargs.positional('file', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ file }) => {\n const { summarizeSurvey } = await import('./cli/summarize')\n await summarizeSurvey(file)\n },\n })\n .command({\n command: 'list-names <file>',\n describe: 'parse survey file and output surveyor name/count table',\n builder: (yargs) =>\n yargs\n .positional('file', {\n type: 'string',\n demandOption: true,\n })\n .option('counts', {\n alias: 'c',\n type: 'boolean',\n describe: 'count the number of occurrences of each name',\n demandOption: false,\n })\n .option('suggest-replacements', {\n alias: 's',\n type: 'boolean',\n describe: 'output suggested replacements',\n demandOption: false,\n }),\n handler: async ({ file, counts, suggestReplacements }) => {\n const { listSurveyNames: listNames } = await import('./cli/list-names')\n await listNames(file, { includeCounts: counts, suggestReplacements })\n },\n })\n .command({\n command: 'replace-names <surveyFile> <replacementsFile>',\n describe: 'replace names survey file',\n builder: (yargs) =>\n yargs\n .positional('surveyFile', {\n type: 'string',\n demandOption: true,\n })\n .positional('replacementsFile', {\n type: 'string',\n demandOption: true,\n })\n .option('verbose', {\n alias: 'v',\n type: 'boolean',\n })\n .option('write', {\n alias: 'w',\n describe: 'overwrite survey file with replacements',\n type: 'boolean',\n }),\n handler: async ({ surveyFile, replacementsFile, verbose, write }) => {\n const { replaceSurveyNames: replaceNames } = await import(\n './cli/replace-names'\n )\n await replaceNames(surveyFile, replacementsFile, { verbose, write })\n },\n })\n .command({\n command: 'merge-names-files <namesFiles..>',\n describe: 'merge two or more names files',\n builder: (yargs) =>\n yargs.positional('namesFiles', {\n type: 'string',\n array: true,\n demandOption: true,\n }),\n handler: async ({ namesFiles }) => {\n const { mergeNamesFiles } = await import('./cli/merge-names-files')\n await mergeNamesFiles(...namesFiles)\n },\n })\n .command({\n command: 'check-correspondence <surveyFile> <summaryFile>',\n describe: 'parse survey file and output trip summaries',\n builder: (yargs) =>\n yargs\n .positional('surveyFile', {\n type: 'string',\n demandOption: true,\n })\n .positional('summaryFile', {\n type: 'string',\n demandOption: true,\n }),\n handler: async ({ surveyFile, summaryFile }) => {\n const { checkSurveyCorrespondence } = await import(\n './cli/check-correspondence'\n )\n await checkSurveyCorrespondence(surveyFile, summaryFile)\n },\n })\n .demandCommand().argv\n"],"mappings":";;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA+B,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAI,wBAAAJ,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAf,CAAA,oBAAAe,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAe,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAd,CAAA,EAAAe,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAf,CAAA,CAAAe,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAE/B,KAAK,IAAAW,cAAK,EAACC,OAAO,CAACC,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9BC,UAAU,CAAC,UAAU,CAAC,CACtBC,OAAO,CAAC;EACPA,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,0CAA0C;EACpDC,OAAO,EAAGP,KAAK,IACbA,KAAK,CAACQ,UAAU,CAAC,MAAM,EAAE;IACvBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC;EACJC,OAAO,EAAE,MAAAA,CAAO;IAAEC;EAAK,CAAC,KAAK;IAC3B,MAAM;MAAEC;IAAY,CAAC,GAAG,MAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,oBAA2B;IACnD,MAAMmC,WAAW,CAACD,IAAI,CAAC;EACzB;AACF,CAAC,CAAC,CACDP,OAAO,CAAC;EACPA,OAAO,EAAE,cAAc;EACvBC,QAAQ,EAAE,8CAA8C;EACxDC,OAAO,EAAGP,KAAK,IACbA,KAAK,CAACQ,UAAU,CAAC,MAAM,EAAE;IACvBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC;EACJC,OAAO,EAAE,MAAAA,CAAO;IAAEC;EAAK,CAAC,KAAK;IAC3B,MAAM;MAAEK;IAAY,CAAC,GAAG,MAAAH,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,2BAAkC;IAC1D,MAAMuC,WAAW,CAACL,IAAI,CAAC;EACzB;AACF,CAAC,CAAC,CACDP,OAAO,CAAC;EACPA,OAAO,EAAE,kBAAkB;EAC3BC,QAAQ,EAAE,6CAA6C;EACvDC,OAAO,EAAGP,KAAK,IACbA,KAAK,CAACQ,UAAU,CAAC,MAAM,EAAE;IACvBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC;EACJC,OAAO,EAAE,MAAAA,CAAO;IAAEC;EAAK,CAAC,KAAK;IAC3B,MAAM;MAAEM;IAAgB,CAAC,GAAG,MAAAJ,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,wBAA+B;IAC3D,MAAMwC,eAAe,CAACN,IAAI,CAAC;EAC7B;AACF,CAAC,CAAC,CACDP,OAAO,CAAC;EACPA,OAAO,EAAE,mBAAmB;EAC5BC,QAAQ,EAAE,wDAAwD;EAClEC,OAAO,EAAGP,KAAK,IACbA,KAAK,CACFQ,UAAU,CAAC,MAAM,EAAE;IAClBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC,CACDS,MAAM,CAAC,QAAQ,EAAE;IAChBC,KAAK,EAAE,GAAG;IACVX,IAAI,EAAE,SAAS;IACfH,QAAQ,EAAE,8CAA8C;IACxDI,YAAY,EAAE;EAChB,CAAC,CAAC,CACDS,MAAM,CAAC,sBAAsB,EAAE;IAC9BC,KAAK,EAAE,GAAG;IACVX,IAAI,EAAE,SAAS;IACfH,QAAQ,EAAE,+BAA+B;IACzCI,YAAY,EAAE;EAChB,CAAC,CAAC;EACNC,OAAO,EAAE,MAAAA,CAAO;IAAEC,IAAI;IAAES,MAAM;IAAEC;EAAoB,CAAC,KAAK;IACxD,MAAM;MAAEC,eAAe,EAAEC;IAAU,CAAC,GAAG,MAAAV,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,yBAAgC;IACvE,MAAM8C,SAAS,CAACZ,IAAI,EAAE;MAAEa,aAAa,EAAEJ,MAAM;MAAEC;IAAoB,CAAC,CAAC;EACvE;AACF,CAAC,CAAC,CACDjB,OAAO,CAAC;EACPA,OAAO,EAAE,+CAA+C;EACxDC,QAAQ,EAAE,2BAA2B;EACrCC,OAAO,EAAGP,KAAK,IACbA,KAAK,CACFQ,UAAU,CAAC,YAAY,EAAE;IACxBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC,CACDF,UAAU,CAAC,kBAAkB,EAAE;IAC9BC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC,CACDS,MAAM,CAAC,SAAS,EAAE;IACjBC,KAAK,EAAE,GAAG;IACVX,IAAI,EAAE;EACR,CAAC,CAAC,CACDU,MAAM,CAAC,OAAO,EAAE;IACfC,KAAK,EAAE,GAAG;IACVd,QAAQ,EAAE,yCAAyC;IACnDG,IAAI,EAAE;EACR,CAAC,CAAC;EACNE,OAAO,EAAE,MAAAA,CAAO;IAAEe,UAAU;IAAEC,gBAAgB;IAAEC,OAAO;IAAEC;EAAM,CAAC,KAAK;IACnE,MAAM;MAAEC,kBAAkB,EAAEC;IAAa,CAAC,GAAG,MAAAjB,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,4BAE5C;IACD,MAAMqD,YAAY,CAACL,UAAU,EAAEC,gBAAgB,EAAE;MAAEC,OAAO;MAAEC;IAAM,CAAC,CAAC;EACtE;AACF,CAAC,CAAC,CACDxB,OAAO,CAAC;EACPA,OAAO,EAAE,kCAAkC;EAC3CC,QAAQ,EAAE,+BAA+B;EACzCC,OAAO,EAAGP,KAAK,IACbA,KAAK,CAACQ,UAAU,CAAC,YAAY,EAAE;IAC7BC,IAAI,EAAE,QAAQ;IACduB,KAAK,EAAE,IAAI;IACXtB,YAAY,EAAE;EAChB,CAAC,CAAC;EACJC,OAAO,EAAE,MAAAA,CAAO;IAAEsB;EAAW,CAAC,KAAK;IACjC,MAAM;MAAEC;IAAgB,CAAC,GAAG,MAAApB,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,gCAAuC;IACnE,MAAMwD,eAAe,CAAC,GAAGD,UAAU,CAAC;EACtC;AACF,CAAC,CAAC,CACD5B,OAAO,CAAC;EACPA,OAAO,EAAE,iDAAiD;EAC1DC,QAAQ,EAAE,6CAA6C;EACvDC,OAAO,EAAGP,KAAK,IACbA,KAAK,CACFQ,UAAU,CAAC,YAAY,EAAE;IACxBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC,CACDF,UAAU,CAAC,aAAa,EAAE;IACzBC,IAAI,EAAE,QAAQ;IACdC,YAAY,EAAE;EAChB,CAAC,CAAC;EACNC,OAAO,EAAE,MAAAA,CAAO;IAAEe,UAAU;IAAES;EAAY,CAAC,KAAK;IAC9C,MAAM;MAAEC;IAA0B,CAAC,GAAG,MAAAtB,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAhC,uBAAA,CAAAN,OAAA,mCAErC;IACD,MAAM0D,yBAAyB,CAACV,UAAU,EAAES,WAAW,CAAC;EAC1D;AACF,CAAC,CAAC,CACDE,aAAa,CAAC,CAAC,CAACnC,IAAI","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@speleotica/frcsdata",
3
- "version": "5.0.2",
3
+ "version": "5.1.0",
4
4
  "description": "parser for Chip Hopper's survey data format used in Fisher Ridge Cave System",
5
5
  "sideEffects": false,
6
6
  "bin": {
@@ -5,6 +5,7 @@ import { ZodValidOrInvalidFrcsSurveyFileToJson } from '../survey/ZodFrcsSurveyFi
5
5
  import { unwrapInvalid } from '../unwrapInvalid'
6
6
  import { parseNamesFile } from './parseNamesFile'
7
7
  import { readFile } from './readFile'
8
+ import { writeFile } from 'fs/promises'
8
9
  import chalk from 'chalk'
9
10
  import { compareNames } from './compareNames'
10
11
 
@@ -13,6 +14,7 @@ export async function replaceSurveyNames(
13
14
  replacementsFile: string,
14
15
  options?: {
15
16
  verbose?: boolean
17
+ write?: boolean
16
18
  }
17
19
  ) {
18
20
  const source = await readFile(surveyFile)
@@ -55,10 +57,15 @@ export async function replaceSurveyNames(
55
57
  }
56
58
  }
57
59
 
58
- process.stdout.write(replaceRanges(source, replacements))
60
+ const replaced = replaceRanges(source, replacements)
61
+ if (options?.write) {
62
+ await writeFile(surveyFile, replaced, 'utf8')
63
+ } else {
64
+ process.stdout.write(replaced)
65
+ }
59
66
  console.error(
60
67
  chalk.yellow(
61
- `replaced ${replacedNames.size} ${
68
+ `replaced ${replacedNames.size} name${
62
69
  replacedNames.size === 1 ? '' : 's'
63
70
  } in ${replacementCount} location${replacementCount === 1 ? '' : 's'}`
64
71
  )
package/src/cli.ts CHANGED
@@ -83,12 +83,17 @@ void yargs(process.argv.slice(2))
83
83
  .option('verbose', {
84
84
  alias: 'v',
85
85
  type: 'boolean',
86
+ })
87
+ .option('write', {
88
+ alias: 'w',
89
+ describe: 'overwrite survey file with replacements',
90
+ type: 'boolean',
86
91
  }),
87
- handler: async ({ surveyFile, replacementsFile, verbose }) => {
92
+ handler: async ({ surveyFile, replacementsFile, verbose, write }) => {
88
93
  const { replaceSurveyNames: replaceNames } = await import(
89
94
  './cli/replace-names'
90
95
  )
91
- await replaceNames(surveyFile, replacementsFile, { verbose })
96
+ await replaceNames(surveyFile, replacementsFile, { verbose, write })
92
97
  },
93
98
  })
94
99
  .command({