@integration-app/react 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/node_modules/@compwright/namecase/LICENSE +26 -0
  2. package/node_modules/@compwright/namecase/README.md +49 -0
  3. package/node_modules/@compwright/namecase/bin/namecase +28 -0
  4. package/node_modules/@compwright/namecase/dist/namecase.min.js +4 -0
  5. package/node_modules/@compwright/namecase/dist/namecase.min.js.map +1 -0
  6. package/node_modules/@compwright/namecase/package.json +46 -0
  7. package/node_modules/@compwright/namecase/src/index.js +146 -0
  8. package/node_modules/@integration-app/sdk/bundle.js +404 -262
  9. package/node_modules/@integration-app/sdk/bundle.js.map +1 -1
  10. package/node_modules/@integration-app/sdk/client.d.ts +3 -3
  11. package/node_modules/@integration-app/sdk/data-builder/formulas/case.d.ts +3 -7
  12. package/node_modules/@integration-app/sdk/data-builder/formulas/case.js +16 -32
  13. package/node_modules/@integration-app/sdk/data-builder/formulas/case.js.map +1 -1
  14. package/node_modules/@integration-app/sdk/integrations/accessors.d.ts +0 -6
  15. package/node_modules/@integration-app/sdk/integrations/accessors.js +1 -87
  16. package/node_modules/@integration-app/sdk/integrations/accessors.js.map +1 -1
  17. package/node_modules/@integration-app/sdk/json-schema/index.d.ts +1 -1
  18. package/node_modules/@integration-app/sdk/src/client.ts +3 -3
  19. package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.test.ts +11 -113
  20. package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.ts +22 -46
  21. package/node_modules/@integration-app/sdk/src/integrations/accessors.ts +2 -122
  22. package/node_modules/@sinclair/typebox/package.json +40 -0
  23. package/node_modules/@sinclair/typebox/readme.md +740 -0
  24. package/node_modules/@sinclair/typebox/typebox.d.ts +351 -0
  25. package/node_modules/@sinclair/typebox/typebox.js +345 -0
  26. package/node_modules/@types/node/README.md +16 -0
  27. package/node_modules/@types/node/assert.d.ts +128 -0
  28. package/node_modules/@types/node/async_hooks.d.ts +229 -0
  29. package/node_modules/@types/node/buffer.d.ts +89 -0
  30. package/node_modules/@types/node/child_process.d.ts +514 -0
  31. package/node_modules/@types/node/cluster.d.ts +265 -0
  32. package/node_modules/@types/node/console.d.ts +142 -0
  33. package/node_modules/@types/node/constants.d.ts +18 -0
  34. package/node_modules/@types/node/crypto.d.ts +1283 -0
  35. package/node_modules/@types/node/dgram.d.ts +144 -0
  36. package/node_modules/@types/node/dns.d.ts +387 -0
  37. package/node_modules/@types/node/domain.d.ts +27 -0
  38. package/node_modules/@types/node/events.d.ts +82 -0
  39. package/node_modules/@types/node/fs/promises.d.ts +572 -0
  40. package/node_modules/@types/node/fs.d.ts +2281 -0
  41. package/node_modules/@types/node/globals.d.ts +747 -0
  42. package/node_modules/@types/node/globals.global.d.ts +1 -0
  43. package/node_modules/@types/node/http.d.ts +580 -0
  44. package/node_modules/@types/node/http2.d.ts +962 -0
  45. package/node_modules/@types/node/https.d.ts +271 -0
  46. package/node_modules/@types/node/index.d.ts +98 -0
  47. package/node_modules/@types/node/inspector.d.ts +3051 -0
  48. package/node_modules/@types/node/module.d.ts +56 -0
  49. package/node_modules/@types/node/net.d.ts +308 -0
  50. package/node_modules/@types/node/os.d.ts +243 -0
  51. package/node_modules/@types/node/package.json +232 -0
  52. package/node_modules/@types/node/path.d.ts +168 -0
  53. package/node_modules/@types/node/perf_hooks.d.ts +274 -0
  54. package/node_modules/@types/node/process.d.ts +413 -0
  55. package/node_modules/@types/node/punycode.d.ts +78 -0
  56. package/node_modules/@types/node/querystring.d.ts +31 -0
  57. package/node_modules/@types/node/readline.d.ts +174 -0
  58. package/node_modules/@types/node/repl.d.ts +398 -0
  59. package/node_modules/@types/node/stream.d.ts +359 -0
  60. package/node_modules/@types/node/string_decoder.d.ts +10 -0
  61. package/node_modules/@types/node/timers.d.ts +19 -0
  62. package/node_modules/@types/node/tls.d.ts +784 -0
  63. package/node_modules/@types/node/trace_events.d.ts +64 -0
  64. package/node_modules/@types/node/ts4.8/assert.d.ts +128 -0
  65. package/node_modules/@types/node/ts4.8/async_hooks.d.ts +229 -0
  66. package/node_modules/@types/node/ts4.8/buffer.d.ts +89 -0
  67. package/node_modules/@types/node/ts4.8/child_process.d.ts +514 -0
  68. package/node_modules/@types/node/ts4.8/cluster.d.ts +265 -0
  69. package/node_modules/@types/node/ts4.8/console.d.ts +142 -0
  70. package/node_modules/@types/node/ts4.8/constants.d.ts +18 -0
  71. package/node_modules/@types/node/ts4.8/crypto.d.ts +1283 -0
  72. package/node_modules/@types/node/ts4.8/dgram.d.ts +144 -0
  73. package/node_modules/@types/node/ts4.8/dns.d.ts +387 -0
  74. package/node_modules/@types/node/ts4.8/domain.d.ts +27 -0
  75. package/node_modules/@types/node/ts4.8/events.d.ts +82 -0
  76. package/node_modules/@types/node/ts4.8/fs/promises.d.ts +572 -0
  77. package/node_modules/@types/node/ts4.8/fs.d.ts +2281 -0
  78. package/node_modules/@types/node/ts4.8/globals.d.ts +746 -0
  79. package/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
  80. package/node_modules/@types/node/ts4.8/http.d.ts +580 -0
  81. package/node_modules/@types/node/ts4.8/http2.d.ts +962 -0
  82. package/node_modules/@types/node/ts4.8/https.d.ts +271 -0
  83. package/node_modules/@types/node/ts4.8/index.d.ts +53 -0
  84. package/node_modules/@types/node/ts4.8/inspector.d.ts +3051 -0
  85. package/node_modules/@types/node/ts4.8/module.d.ts +56 -0
  86. package/node_modules/@types/node/ts4.8/net.d.ts +308 -0
  87. package/node_modules/@types/node/ts4.8/os.d.ts +243 -0
  88. package/node_modules/@types/node/ts4.8/path.d.ts +168 -0
  89. package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +274 -0
  90. package/node_modules/@types/node/ts4.8/process.d.ts +413 -0
  91. package/node_modules/@types/node/ts4.8/punycode.d.ts +78 -0
  92. package/node_modules/@types/node/ts4.8/querystring.d.ts +31 -0
  93. package/node_modules/@types/node/ts4.8/readline.d.ts +174 -0
  94. package/node_modules/@types/node/ts4.8/repl.d.ts +398 -0
  95. package/node_modules/@types/node/ts4.8/stream.d.ts +359 -0
  96. package/node_modules/@types/node/ts4.8/string_decoder.d.ts +10 -0
  97. package/node_modules/@types/node/ts4.8/timers.d.ts +19 -0
  98. package/node_modules/@types/node/ts4.8/tls.d.ts +784 -0
  99. package/node_modules/@types/node/ts4.8/trace_events.d.ts +64 -0
  100. package/node_modules/@types/node/ts4.8/tty.d.ts +69 -0
  101. package/node_modules/@types/node/ts4.8/url.d.ts +149 -0
  102. package/node_modules/@types/node/ts4.8/util.d.ts +216 -0
  103. package/node_modules/@types/node/ts4.8/v8.d.ts +190 -0
  104. package/node_modules/@types/node/ts4.8/vm.d.ts +155 -0
  105. package/node_modules/@types/node/ts4.8/wasi.d.ts +89 -0
  106. package/node_modules/@types/node/ts4.8/worker_threads.d.ts +241 -0
  107. package/node_modules/@types/node/ts4.8/zlib.d.ts +364 -0
  108. package/node_modules/@types/node/tty.d.ts +69 -0
  109. package/node_modules/@types/node/url.d.ts +149 -0
  110. package/node_modules/@types/node/util.d.ts +216 -0
  111. package/node_modules/@types/node/v8.d.ts +190 -0
  112. package/node_modules/@types/node/vm.d.ts +155 -0
  113. package/node_modules/@types/node/wasi.d.ts +89 -0
  114. package/node_modules/@types/node/worker_threads.d.ts +241 -0
  115. package/node_modules/@types/node/zlib.d.ts +364 -0
  116. package/package.json +2 -5
  117. package/node_modules/@integration-app/sdk/.DS_Store +0 -0
  118. package/node_modules/@integration-app/sdk/.gitignore +0 -11
  119. package/node_modules/@integration-app/sdk/.npmignore +0 -0
  120. package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.d.ts +0 -23
  121. package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.js.map +0 -1
  122. package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.d.ts +0 -20
  123. package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.js.map +0 -1
  124. package/node_modules/@integration-app/sdk/app-events/app-events.d.ts +0 -44
  125. package/node_modules/@integration-app/sdk/app-events/app-events.js.map +0 -1
  126. package/node_modules/@integration-app/sdk/connection-client.d.ts +0 -12
  127. package/node_modules/@integration-app/sdk/connection-client.js +0 -31
  128. package/node_modules/@integration-app/sdk/connection-client.js.map +0 -1
  129. package/node_modules/@integration-app/sdk/connections/connections.d.ts +0 -46
  130. package/node_modules/@integration-app/sdk/connections/connections.js.map +0 -1
  131. package/node_modules/@integration-app/sdk/connector-api/connector-api.d.ts +0 -157
  132. package/node_modules/@integration-app/sdk/connector-api/connector-api.js.map +0 -1
  133. package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.d.ts +0 -0
  134. package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.js.map +0 -1
  135. package/node_modules/@integration-app/sdk/data-builder/first-name.test.d.ts +0 -0
  136. package/node_modules/@integration-app/sdk/data-builder/first-name.test.js +0 -2
  137. package/node_modules/@integration-app/sdk/data-builder/first-name.test.js.map +0 -1
  138. package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.d.ts +0 -10
  139. package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.js.map +0 -1
  140. package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.d.ts +0 -1
  141. package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js +0 -26
  142. package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js.map +0 -1
  143. package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.d.ts +0 -1
  144. package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js +0 -246
  145. package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js.map +0 -1
  146. package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.d.ts +0 -1
  147. package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js +0 -85
  148. package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js.map +0 -1
  149. package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.d.ts +0 -1
  150. package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js +0 -64
  151. package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js.map +0 -1
  152. package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.d.ts +0 -1
  153. package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js +0 -44
  154. package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js.map +0 -1
  155. package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.d.ts +0 -1
  156. package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js +0 -44
  157. package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js.map +0 -1
  158. package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.d.ts +0 -1
  159. package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js +0 -26
  160. package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js.map +0 -1
  161. package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.d.ts +0 -1
  162. package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js +0 -26
  163. package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js.map +0 -1
  164. package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.d.ts +0 -1
  165. package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js +0 -14
  166. package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js.map +0 -1
  167. package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.d.ts +0 -1
  168. package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js +0 -63
  169. package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js.map +0 -1
  170. package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.d.ts +0 -1
  171. package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js +0 -112
  172. package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js.map +0 -1
  173. package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.d.ts +0 -1
  174. package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js +0 -18
  175. package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js.map +0 -1
  176. package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.d.ts +0 -1
  177. package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js +0 -114
  178. package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js.map +0 -1
  179. package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.d.ts +0 -1
  180. package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js +0 -49
  181. package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js.map +0 -1
  182. package/node_modules/@integration-app/sdk/data-builder/formulas/types.d.ts +0 -0
  183. package/node_modules/@integration-app/sdk/data-builder/formulas/types.js.map +0 -1
  184. package/node_modules/@integration-app/sdk/data-builder/index.test.d.ts +0 -1
  185. package/node_modules/@integration-app/sdk/data-builder/index.test.js +0 -295
  186. package/node_modules/@integration-app/sdk/data-builder/index.test.js.map +0 -1
  187. package/node_modules/@integration-app/sdk/data-builder/locators.test.d.ts +0 -1
  188. package/node_modules/@integration-app/sdk/data-builder/locators.test.js +0 -775
  189. package/node_modules/@integration-app/sdk/data-builder/locators.test.js.map +0 -1
  190. package/node_modules/@integration-app/sdk/data-filter/conditions.d.ts +0 -0
  191. package/node_modules/@integration-app/sdk/data-filter/conditions.js.map +0 -1
  192. package/node_modules/@integration-app/sdk/data-filter/data-filter.test.d.ts +0 -1
  193. package/node_modules/@integration-app/sdk/data-filter/data-filter.test.js.map +0 -1
  194. package/node_modules/@integration-app/sdk/data-filter/index.test.d.ts +0 -1
  195. package/node_modules/@integration-app/sdk/data-filter/index.test.js +0 -43
  196. package/node_modules/@integration-app/sdk/data-filter/index.test.js.map +0 -1
  197. package/node_modules/@integration-app/sdk/data-filter/operators.test.d.ts +0 -1
  198. package/node_modules/@integration-app/sdk/data-filter/operators.test.js +0 -490
  199. package/node_modules/@integration-app/sdk/data-filter/operators.test.js.map +0 -1
  200. package/node_modules/@integration-app/sdk/data-links/data-links.d.ts +0 -58
  201. package/node_modules/@integration-app/sdk/data-links/data-links.js.map +0 -1
  202. package/node_modules/@integration-app/sdk/data-schema/index.test.d.ts +0 -1
  203. package/node_modules/@integration-app/sdk/data-schema/index.test.js +0 -86
  204. package/node_modules/@integration-app/sdk/data-schema/index.test.js.map +0 -1
  205. package/node_modules/@integration-app/sdk/data-sources/data-sources.d.ts +0 -41
  206. package/node_modules/@integration-app/sdk/data-sources/data-sources.js.map +0 -1
  207. package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.d.ts +0 -30
  208. package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.js.map +0 -1
  209. package/node_modules/@integration-app/sdk/field-mappings/field-mappings.d.ts +0 -29
  210. package/node_modules/@integration-app/sdk/field-mappings/field-mappings.js.map +0 -1
  211. package/node_modules/@integration-app/sdk/flow-runs/flow-runs.d.ts +0 -51
  212. package/node_modules/@integration-app/sdk/flow-runs/flow-runs.js.map +0 -1
  213. package/node_modules/@integration-app/sdk/flows/flows.d.ts +0 -156
  214. package/node_modules/@integration-app/sdk/flows/flows.js.map +0 -1
  215. package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.d.ts +0 -3
  216. package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.js.map +0 -1
  217. package/node_modules/@integration-app/sdk/flows/nodes/nodes.d.ts +0 -25
  218. package/node_modules/@integration-app/sdk/flows/nodes/nodes.js.map +0 -1
  219. package/node_modules/@integration-app/sdk/flows/utils.test.d.ts +0 -1
  220. package/node_modules/@integration-app/sdk/flows/utils.test.js +0 -62
  221. package/node_modules/@integration-app/sdk/flows/utils.test.js.map +0 -1
  222. package/node_modules/@integration-app/sdk/integration-elements/integration-elements.d.ts +0 -21
  223. package/node_modules/@integration-app/sdk/integration-elements/integration-elements.js.map +0 -1
  224. package/node_modules/@integration-app/sdk/integrations/integrations.d.ts +0 -48
  225. package/node_modules/@integration-app/sdk/integrations/integrations.js.map +0 -1
  226. package/node_modules/@integration-app/sdk/json-schema/json-schema.test.d.ts +0 -1
  227. package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js +0 -194
  228. package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js.map +0 -1
  229. package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.d.ts +0 -1
  230. package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js +0 -352
  231. package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js.map +0 -1
  232. package/node_modules/@integration-app/sdk/jwt.test.d.ts +0 -1
  233. package/node_modules/@integration-app/sdk/jwt.test.js +0 -9
  234. package/node_modules/@integration-app/sdk/jwt.test.js.map +0 -1
  235. package/node_modules/@integration-app/sdk/package-lock.json +0 -3834
  236. package/node_modules/@integration-app/sdk/udm/activities.test.d.ts +0 -1
  237. package/node_modules/@integration-app/sdk/udm/activities.test.js +0 -40
  238. package/node_modules/@integration-app/sdk/udm/activities.test.js.map +0 -1
  239. package/node_modules/@integration-app/sdk/udm/campaign-members.d.ts +0 -45
  240. package/node_modules/@integration-app/sdk/udm/campaign-members.js +0 -99
  241. package/node_modules/@integration-app/sdk/udm/campaign-members.js.map +0 -1
  242. package/node_modules/@integration-app/sdk/udm/contacts.test.d.ts +0 -1
  243. package/node_modules/@integration-app/sdk/udm/contacts.test.js +0 -136
  244. package/node_modules/@integration-app/sdk/udm/contacts.test.js.map +0 -1
  245. package/node_modules/@integration-app/sdk/udm/crm-activities.d.ts +0 -17
  246. package/node_modules/@integration-app/sdk/udm/crm-activities.js.map +0 -1
  247. package/node_modules/@integration-app/sdk/udm/crm-activity.d.ts +0 -11
  248. package/node_modules/@integration-app/sdk/udm/crm-activity.js.map +0 -1
  249. package/node_modules/@integration-app/sdk/udm/crm-companies.d.ts +0 -14
  250. package/node_modules/@integration-app/sdk/udm/crm-companies.js.map +0 -1
  251. package/node_modules/@integration-app/sdk/udm/crm-contact.d.ts +0 -10
  252. package/node_modules/@integration-app/sdk/udm/crm-contact.js.map +0 -1
  253. package/node_modules/@integration-app/sdk/udm/crm-contacts.d.ts +0 -16
  254. package/node_modules/@integration-app/sdk/udm/crm-contacts.js.map +0 -1
  255. package/node_modules/@integration-app/sdk/udm/crm-deals.d.ts +0 -15
  256. package/node_modules/@integration-app/sdk/udm/crm-deals.js.map +0 -1
  257. package/node_modules/@integration-app/sdk/udm/crm-leads.d.ts +0 -16
  258. package/node_modules/@integration-app/sdk/udm/crm-leads.js.map +0 -1
  259. package/node_modules/@integration-app/sdk/udm/members.d.ts +0 -45
  260. package/node_modules/@integration-app/sdk/udm/members.js.map +0 -1
  261. package/node_modules/@integration-app/sdk/users/users.d.ts +0 -5
  262. package/node_modules/@integration-app/sdk/users/users.js.map +0 -1
@@ -0,0 +1,26 @@
1
+ NameCase
2
+ Copyright (C) 2013-2014 Mason Gravitt
3
+
4
+ Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ of this software and associated documentation files (the "Software"), to deal
6
+ in the Software without restriction, including without limitation the rights
7
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ copies of the Software, and to permit persons to whom the Software is
9
+ furnished to do so, subject to the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be included in all
12
+ copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ SOFTWARE.
21
+
22
+
23
+ Original PERL version
24
+ Copyright (c) Mark Summerfield 1998-2008. All Rights Reserved. This program is
25
+ free software; you can redistribute it and/or modify it under the same
26
+ terms as Perl itself.
@@ -0,0 +1,49 @@
1
+ # namecase
2
+
3
+ [![Build Status](https://travis-ci.org/compwright/namecase.png)](https://travis-ci.org/compwright/namecase)
4
+
5
+ A Javascript library for fixing the capitalization of people's names.
6
+
7
+ It is heavily based on the Perl
8
+ [Lingua-EN-NameCase](http://cpansearch.perl.org/src/SUMMER/Lingua-EN-NameCase-1.15/) module.
9
+
10
+ ## Usage
11
+
12
+ namecase provides two functions:
13
+
14
+ `nameCase.checkName()` which returns true if the name is in all `UPPERCASE` or `lowercase`.
15
+
16
+ `nameCase(string or array, { individualFields: boolean })` returns a properly capitalized name.
17
+
18
+ The option ```individualFields``` defaults to false which works best when the person's names
19
+ are combined into a single field. If ```individualFields``` is set to true, it means you're
20
+ passing in given and surnames separately. The only difference between these two options is
21
+ with ```individualFields``` set to false, the first character is always capitalized.
22
+
23
+ Namecase can also be executed from the command line via ```namecase```, which accepts data
24
+ from STDIN and outputs the formatted names to STDOUT.
25
+
26
+ ## Usage Examples
27
+
28
+ ### Browser
29
+
30
+ ```html
31
+ <script src="https://unpkg.com/@compwright/namecase@latest/dist/namecase.min.js"></script>
32
+ <script>
33
+ console.log(window.namecase('GEORGE WASHINGTON'));
34
+ </script>
35
+ ```
36
+
37
+ ### Node
38
+
39
+ ```javascript
40
+ const nameCase = require('@compwright/namecase');
41
+ console.log(nameCase('WILLIAM MCKINLEY'));
42
+ ```
43
+
44
+ ### Command line
45
+
46
+ ```bash
47
+ $ npm install -g @compwright/namecase
48
+ $ namecase < input.txt > ouput.txt
49
+ ```
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env node
2
+
3
+ const nameCase = require('../src');
4
+ const os = require('os');
5
+
6
+ let str = '', out = [];
7
+
8
+ process.stdin.resume();
9
+ process.stdin.setEncoding('utf8');
10
+
11
+ process.stdin.on('data', function(chunk) {
12
+ str += chunk;
13
+ });
14
+
15
+ process.stdin.on('end', function () {
16
+ str = str.split(/\r\n|\r|\n/);
17
+
18
+ for (let i = 0; i < str.length; i++) {
19
+ if (nameCase.checkName(str[i])) {
20
+ out.push(nameCase(str[i]));
21
+ } else {
22
+ out.push(nameCase.normalize(str[i]));
23
+ }
24
+ }
25
+
26
+ process.stdout.write(out.join(os.EOL));
27
+ });
28
+
@@ -0,0 +1,4 @@
1
+ parcelRequire=function(e,r,t,n){var i,o="function"==typeof parcelRequire&&parcelRequire,u="function"==typeof require&&require;function f(t,n){if(!r[t]){if(!e[t]){var i="function"==typeof parcelRequire&&parcelRequire;if(!n&&i)return i(t,!0);if(o)return o(t,!0);if(u&&"string"==typeof t)return u(t);var c=new Error("Cannot find module '"+t+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[t][1][r]||r},p.cache={};var l=r[t]=new f.Module(t);e[t][0].call(l.exports,p,l,l.exports,this)}return r[t].exports;function p(e){return f(p.resolve(e))}}f.isParcelRequire=!0,f.Module=function(e){this.id=e,this.bundle=f,this.exports={}},f.modules=e,f.cache=r,f.parent=o,f.register=function(r,t){e[r]=[function(e,r){r.exports=t},{}]};for(var c=0;c<t.length;c++)try{f(t[c])}catch(e){i||(i=e)}if(t.length){var l=f(t[t.length-1]);"object"==typeof exports&&"undefined"!=typeof module?module.exports=l:"function"==typeof define&&define.amd?define(function(){return l}):n&&(this[n]=l)}if(parcelRequire=f,i)throw i;return f}({"Focm":[function(require,module,exports) {
2
+ var e=function(e){return e===e.toLowerCase()||e===e.toUpperCase()},a=function(e){return e.replace(/\s{2,}/g," ")};function c(e){var a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=e.trim().toLowerCase();for(var c=[{s:/\s/,r:" "},{s:/-/,r:"-"},{s:/'/,r:"'"},{s:/"/,r:'"'},{s:/\(/,r:"("},{s:/\./,r:"."},{s:/,/,r:","},{s:/\//,r:"/"}],r=0;r<c.length;r++){for(var b=e.split(c[r].s),l=0;l<b.length;l++)b[l]=b[l].charAt(0).toUpperCase()+b[l].slice(1);e=b.join(c[r].r)}return(/\bMac[A-Za-z]{2,}[^aciozj]\b/.test(e)||/\bMc/.test(e))&&(e=(e=e.replace(/\b(Ma?c)([A-Za-z]+)/,function(e,a,c){return a+c.charAt(0).toUpperCase()+c.substring(1)})).replace(/\bMacEvicius\b/,"Macevicius").replace(/\bMacHado\b/,"Machado").replace(/\bMacHar\b/,"Machar").replace(/\bMacHin\b/,"Machin").replace(/\bMacHlin\b/,"Machlin").replace(/\bMacIas\b/,"Macias").replace(/\bMacIulis\b/,"Maciulis").replace(/\bMacKie\b/,"Mackie").replace(/\bMacKle\b/,"Mackle").replace(/\bMacKlin\b/,"Macklin").replace(/\bMacQuarie\b/,"Macquarie").replace(/\bMacOmber\b/,"Macomber").replace(/\bMacIn\b/,"Macin").replace(/\bMacKintosh\b/,"Mackintosh").replace(/\bMacKen\b/,"Macken").replace(/\bMacHen\b/,"Machen").replace(/\bMacHiel\b/,"Machiel").replace(/\bMacIol\b/,"Maciol").replace(/\bMacKell\b/,"Mackell").replace(/\bMacKlem\b/,"Macklem").replace(/\bMacKrell\b/,"Mackrell").replace(/\bMacLin\b/,"Maclin").replace(/\bMacKey\b/,"Mackey").replace(/\bMacKley\b/,"Mackley").replace(/\bMacHell\b/,"Machell").replace(/\bMacHon\b/,"Machon").replace(/\bMacAyla\b/,"Macayla")),e=e.replace(/\bMacmurdo/,"MacMurdo").replace(/\bMacisaac/,"MacIsaac").replace(/\bAl(?=\s+\w)\b/g,"al").replace(/\bAp\b/g,"ap").replace(/\bBen(?=\s+\w)\b/g,"ben").replace(/\bDell([ae])\b/g,"dell$1").replace(/\bD([aeiu])\b/g,"d$1").replace(/\bDe([lr])\b/g,"de$1").replace(/\bEl\b/g,"el").replace(/\bLa\b/g,"la").replace(/\bLe(?=\s+\w)\b/g,"le").replace(/\bLo\b/g,"lo").replace(/\bVan(?=\s+\w)\b/g,"van").replace(/\bVon\b/g,"von").replace(/\b(?:\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i,function(e){return e.toUpperCase()}).replace(/\b[0-9](x)\b/,function(e){return e.toUpperCase()}).replace(/\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\s/,function(e){return e.toUpperCase()}).replace(/\bMR\.?\b/,"Mr").replace(/\bMS\.?\b/,"Ms").replace(/\bDR\.?\b/,"Dr").replace(/\bST\.?\b/,"St").replace(/\bJR\.?\b/,"Jr").replace(/\bSR\.?\b/,"Sr").replace(/\bLT\.?\b/,"Lt").replace(/\bThe\b/g,"the").replace(/\bOf\b/g,"of").replace(/\bAnd\b/g,"and").replace(/\bY\s/g,"y").replace(/\s{2,}/g," "),!0===a.individualFields?e:e.charAt(0).toUpperCase()+e.substring(1)}function r(e,a){return Array.isArray(e)?e.map(r):"string"==typeof e?c(e,a):e}module.exports=r,module.exports.checkName=e,module.exports.normalize=a;
3
+ },{}]},{},["Focm"], "namecase")
4
+ //# sourceMappingURL=/namecase.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.js"],"names":["checkName","name","toLowerCase","toUpperCase","normalize","replace","nc","el","opt","trim","splitters","s","r","i","length","elArr","split","j","charAt","slice","join","test","x","y","z","substring","v","individualFields","namecase","input","Array","isArray","map","module","exports"],"mappings":"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","file":"namecase.min.js","sourceRoot":"../src","sourcesContent":["// Don't change capitalization unless capitalization isn't set\nconst checkName = name => name === name.toLowerCase() || name === name.toUpperCase();\n\n// Strip out extraneous spaces\nconst normalize = name => name.replace(/\\s{2,}/g, ' ');\n\n// Actual case fixing function\nfunction nc (el, opt = {}) {\n el = el.trim().toLowerCase();\n\n // Split names on regex whitespace, dash or apostrophe, workaround for\n // Javascript regex word boundary \\b splitting on unicode characters\n // http://stackoverflow.com/questions/5311618/javascript-regular-expression-problem-with-b-and-international-characters\n const splitters = [\n { s: /\\s/, r: ' ' },\n { s: /-/, r: '-' },\n { s: /'/, r: \"'\" },\n { s: /\"/, r: '\"' },\n { s: /\\(/, r: '(' },\n { s: /\\./, r: '.' },\n { s: /,/, r: ',' },\n { s: /\\//, r: '/' }\n ];\n\n for (let i = 0; i < splitters.length; i++) {\n const elArr = el.split(splitters[i].s);\n for (let j = 0; j < elArr.length; j++) {\n elArr[j] = elArr[j].charAt(0).toUpperCase() + elArr[j].slice(1);\n }\n el = elArr.join(splitters[i].r);\n }\n\n // Name case Mcs and Macs\n // Exclude names with 1-2 letters after prefix like Mack, Macky, Mace\n // Exclude names ending in a,c,i,o, or j are typically Polish or Italian\n if (\n /\\bMac[A-Za-z]{2,}[^aciozj]\\b/.test(el) ||\n /\\bMc/.test(el)\n ) {\n el = el.replace(\n /\\b(Ma?c)([A-Za-z]+)/,\n (x, y, z) => y + z.charAt(0).toUpperCase() + z.substring(1)\n );\n\n // Now correct for \"Mac\" exceptions\n el = el\n .replace(/\\bMacEvicius\\b/, 'Macevicius')\n .replace(/\\bMacHado\\b/, 'Machado')\n .replace(/\\bMacHar\\b/, 'Machar')\n .replace(/\\bMacHin\\b/, 'Machin')\n .replace(/\\bMacHlin\\b/, 'Machlin')\n .replace(/\\bMacIas\\b/, 'Macias')\n .replace(/\\bMacIulis\\b/, 'Maciulis')\n .replace(/\\bMacKie\\b/, 'Mackie')\n .replace(/\\bMacKle\\b/, 'Mackle')\n .replace(/\\bMacKlin\\b/, 'Macklin')\n .replace(/\\bMacQuarie\\b/, 'Macquarie')\n .replace(/\\bMacOmber\\b/, 'Macomber')\n .replace(/\\bMacIn\\b/, 'Macin')\n .replace(/\\bMacKintosh\\b/, 'Mackintosh')\n .replace(/\\bMacKen\\b/, 'Macken')\n .replace(/\\bMacHen\\b/, 'Machen')\n .replace(/\\bMacHiel\\b/, 'Machiel')\n .replace(/\\bMacIol\\b/, 'Maciol')\n .replace(/\\bMacKell\\b/, 'Mackell')\n .replace(/\\bMacKlem\\b/, 'Macklem')\n .replace(/\\bMacKrell\\b/, 'Mackrell')\n .replace(/\\bMacLin\\b/, 'Maclin')\n .replace(/\\bMacKey\\b/, 'Mackey')\n .replace(/\\bMacKley\\b/, 'Mackley')\n .replace(/\\bMacHell\\b/, 'Machell')\n .replace(/\\bMacHon\\b/, 'Machon')\n .replace(/\\bMacAyla\\b/, 'Macayla');\n }\n\n // And correct Mac exceptions otherwise missed\n el = el\n .replace(/\\bMacmurdo/, 'MacMurdo')\n .replace(/\\bMacisaac/, 'MacIsaac')\n\n // Fixes for \"son (daughter) of\" etc. in various languages.\n .replace(/\\bAl(?=\\s+\\w)\\b/g, 'al') // al Arabic or forename Al.\n .replace(/\\bAp\\b/g, 'ap') // ap Welsh.\n .replace(/\\bBen(?=\\s+\\w)\\b/g, 'ben') // ben Hebrew or forename Ben.\n .replace(/\\bDell([ae])\\b/g, 'dell$1') // della and delle Italian.\n .replace(/\\bD([aeiu])\\b/g, 'd$1') // da, de, di Italian; du French.\n .replace(/\\bDe([lr])\\b/g, 'de$1') // del Italian; der Dutch/Flemish.\n .replace(/\\bEl\\b/g, 'el') // el Greek\n .replace(/\\bLa\\b/g, 'la') // la French\n .replace(/\\bLe(?=\\s+\\w)\\b/g, 'le') // le French\n .replace(/\\bLo\\b/g, 'lo') // lo Italian\n .replace(/\\bVan(?=\\s+\\w)\\b/g, 'van') // van German or forename Van.\n .replace(/\\bVon\\b/g, 'von') // von Dutch/Flemish\n\n // Fixes for roman numeral names, e.g. Henry VIII\n .replace(/\\b(?:\\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i, v => v.toUpperCase())\n\n // Nation of Islam 2X, 3X, etc. names\n .replace(/\\b[0-9](x)\\b/, v => v.toUpperCase())\n\n // Somewhat arbitrary rule where two letter combos not containing vowels should be capitalized\n // fixes /JJ Abrams/ and /JD Salinger/\n // With some exceptions\n .replace(/\\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\\s/, v => v.toUpperCase())\n .replace(/\\bMR\\.?\\b/, 'Mr')\n .replace(/\\bMS\\.?\\b/, 'Ms')\n .replace(/\\bDR\\.?\\b/, 'Dr')\n .replace(/\\bST\\.?\\b/, 'St')\n .replace(/\\bJR\\.?\\b/, 'Jr')\n .replace(/\\bSR\\.?\\b/, 'Sr')\n .replace(/\\bLT\\.?\\b/, 'Lt')\n\n // lowercase words\n .replace(/\\bThe\\b/g, 'the')\n .replace(/\\bOf\\b/g, 'of')\n .replace(/\\bAnd\\b/g, 'and')\n .replace(/\\bY\\s/g, 'y')\n\n // strip extra spaces\n .replace(/\\s{2,}/g, ' ');\n\n // check if we should force the first character to caps\n if (opt.individualFields === true) {\n // first character may be lowercase\n return el;\n }\n\n // force first character to be uppercase\n return el.charAt(0).toUpperCase() + el.substring(1);\n}\n\nfunction namecase (input, opt) {\n if (Array.isArray(input)) {\n return input.map(namecase);\n }\n\n if (typeof input === 'string') {\n return nc(input, opt);\n }\n\n return input;\n}\n\nmodule.exports = namecase;\nmodule.exports.checkName = checkName;\nmodule.exports.normalize = normalize;\n"]}
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@compwright/namecase",
3
+ "version": "2.0.6",
4
+ "description": "Module for fixing capitalization of people's names",
5
+ "keywords": [
6
+ "namecase",
7
+ "names",
8
+ "case",
9
+ "capitalization"
10
+ ],
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "https://github.com/compwright/namecase.git"
14
+ },
15
+ "bugs": "https://github.com/compwright/namecase/issues",
16
+ "author": "Mason Gravitt <emgee@gravitronic.com>",
17
+ "contributors": [
18
+ "Jonathon Hill <jhill9693@gmail.com>"
19
+ ],
20
+ "engines": {
21
+ "node": ">=10"
22
+ },
23
+ "devDependencies": {
24
+ "mocha": "^8.2.1",
25
+ "parcel-bundler": "^1.12.4",
26
+ "semistandard": "^16.0.0"
27
+ },
28
+ "bin": "./bin/namecase",
29
+ "main": "src/",
30
+ "files": [
31
+ "src",
32
+ "dist/namecase.*"
33
+ ],
34
+ "scripts": {
35
+ "lint": "semistandard --fix",
36
+ "pretest": "npm run lint",
37
+ "test": "mocha test",
38
+ "prebuild": "npm test",
39
+ "build": "parcel build src/index.js --out-file namecase.min.js --target browser --no-cache --global namecase"
40
+ },
41
+ "semistandard": {
42
+ "ignore": [
43
+ "dist"
44
+ ]
45
+ }
46
+ }
@@ -0,0 +1,146 @@
1
+ // Don't change capitalization unless capitalization isn't set
2
+ const checkName = name => name === name.toLowerCase() || name === name.toUpperCase();
3
+
4
+ // Strip out extraneous spaces
5
+ const normalize = name => name.replace(/\s{2,}/g, ' ');
6
+
7
+ // Actual case fixing function
8
+ function nc (el, opt = {}) {
9
+ el = el.trim().toLowerCase();
10
+
11
+ // Split names on regex whitespace, dash or apostrophe, workaround for
12
+ // Javascript regex word boundary \b splitting on unicode characters
13
+ // http://stackoverflow.com/questions/5311618/javascript-regular-expression-problem-with-b-and-international-characters
14
+ const splitters = [
15
+ { s: /\s/, r: ' ' },
16
+ { s: /-/, r: '-' },
17
+ { s: /'/, r: "'" },
18
+ { s: /"/, r: '"' },
19
+ { s: /\(/, r: '(' },
20
+ { s: /\./, r: '.' },
21
+ { s: /,/, r: ',' },
22
+ { s: /\//, r: '/' }
23
+ ];
24
+
25
+ for (let i = 0; i < splitters.length; i++) {
26
+ const elArr = el.split(splitters[i].s);
27
+ for (let j = 0; j < elArr.length; j++) {
28
+ elArr[j] = elArr[j].charAt(0).toUpperCase() + elArr[j].slice(1);
29
+ }
30
+ el = elArr.join(splitters[i].r);
31
+ }
32
+
33
+ // Name case Mcs and Macs
34
+ // Exclude names with 1-2 letters after prefix like Mack, Macky, Mace
35
+ // Exclude names ending in a,c,i,o, or j are typically Polish or Italian
36
+ if (
37
+ /\bMac[A-Za-z]{2,}[^aciozj]\b/.test(el) ||
38
+ /\bMc/.test(el)
39
+ ) {
40
+ el = el.replace(
41
+ /\b(Ma?c)([A-Za-z]+)/,
42
+ (x, y, z) => y + z.charAt(0).toUpperCase() + z.substring(1)
43
+ );
44
+
45
+ // Now correct for "Mac" exceptions
46
+ el = el
47
+ .replace(/\bMacEvicius\b/, 'Macevicius')
48
+ .replace(/\bMacHado\b/, 'Machado')
49
+ .replace(/\bMacHar\b/, 'Machar')
50
+ .replace(/\bMacHin\b/, 'Machin')
51
+ .replace(/\bMacHlin\b/, 'Machlin')
52
+ .replace(/\bMacIas\b/, 'Macias')
53
+ .replace(/\bMacIulis\b/, 'Maciulis')
54
+ .replace(/\bMacKie\b/, 'Mackie')
55
+ .replace(/\bMacKle\b/, 'Mackle')
56
+ .replace(/\bMacKlin\b/, 'Macklin')
57
+ .replace(/\bMacQuarie\b/, 'Macquarie')
58
+ .replace(/\bMacOmber\b/, 'Macomber')
59
+ .replace(/\bMacIn\b/, 'Macin')
60
+ .replace(/\bMacKintosh\b/, 'Mackintosh')
61
+ .replace(/\bMacKen\b/, 'Macken')
62
+ .replace(/\bMacHen\b/, 'Machen')
63
+ .replace(/\bMacHiel\b/, 'Machiel')
64
+ .replace(/\bMacIol\b/, 'Maciol')
65
+ .replace(/\bMacKell\b/, 'Mackell')
66
+ .replace(/\bMacKlem\b/, 'Macklem')
67
+ .replace(/\bMacKrell\b/, 'Mackrell')
68
+ .replace(/\bMacLin\b/, 'Maclin')
69
+ .replace(/\bMacKey\b/, 'Mackey')
70
+ .replace(/\bMacKley\b/, 'Mackley')
71
+ .replace(/\bMacHell\b/, 'Machell')
72
+ .replace(/\bMacHon\b/, 'Machon')
73
+ .replace(/\bMacAyla\b/, 'Macayla');
74
+ }
75
+
76
+ // And correct Mac exceptions otherwise missed
77
+ el = el
78
+ .replace(/\bMacmurdo/, 'MacMurdo')
79
+ .replace(/\bMacisaac/, 'MacIsaac')
80
+
81
+ // Fixes for "son (daughter) of" etc. in various languages.
82
+ .replace(/\bAl(?=\s+\w)\b/g, 'al') // al Arabic or forename Al.
83
+ .replace(/\bAp\b/g, 'ap') // ap Welsh.
84
+ .replace(/\bBen(?=\s+\w)\b/g, 'ben') // ben Hebrew or forename Ben.
85
+ .replace(/\bDell([ae])\b/g, 'dell$1') // della and delle Italian.
86
+ .replace(/\bD([aeiu])\b/g, 'd$1') // da, de, di Italian; du French.
87
+ .replace(/\bDe([lr])\b/g, 'de$1') // del Italian; der Dutch/Flemish.
88
+ .replace(/\bEl\b/g, 'el') // el Greek
89
+ .replace(/\bLa\b/g, 'la') // la French
90
+ .replace(/\bLe(?=\s+\w)\b/g, 'le') // le French
91
+ .replace(/\bLo\b/g, 'lo') // lo Italian
92
+ .replace(/\bVan(?=\s+\w)\b/g, 'van') // van German or forename Van.
93
+ .replace(/\bVon\b/g, 'von') // von Dutch/Flemish
94
+
95
+ // Fixes for roman numeral names, e.g. Henry VIII
96
+ .replace(/\b(?:\d{4}|(?:[IVX])(?:X{0,3}I{0,3}|X{0,2}VI{0,3}|X{0,2}I?[VX]))$/i, v => v.toUpperCase())
97
+
98
+ // Nation of Islam 2X, 3X, etc. names
99
+ .replace(/\b[0-9](x)\b/, v => v.toUpperCase())
100
+
101
+ // Somewhat arbitrary rule where two letter combos not containing vowels should be capitalized
102
+ // fixes /JJ Abrams/ and /JD Salinger/
103
+ // With some exceptions
104
+ .replace(/\b[bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ]{2}\s/, v => v.toUpperCase())
105
+ .replace(/\bMR\.?\b/, 'Mr')
106
+ .replace(/\bMS\.?\b/, 'Ms')
107
+ .replace(/\bDR\.?\b/, 'Dr')
108
+ .replace(/\bST\.?\b/, 'St')
109
+ .replace(/\bJR\.?\b/, 'Jr')
110
+ .replace(/\bSR\.?\b/, 'Sr')
111
+ .replace(/\bLT\.?\b/, 'Lt')
112
+
113
+ // lowercase words
114
+ .replace(/\bThe\b/g, 'the')
115
+ .replace(/\bOf\b/g, 'of')
116
+ .replace(/\bAnd\b/g, 'and')
117
+ .replace(/\bY\s/g, 'y')
118
+
119
+ // strip extra spaces
120
+ .replace(/\s{2,}/g, ' ');
121
+
122
+ // check if we should force the first character to caps
123
+ if (opt.individualFields === true) {
124
+ // first character may be lowercase
125
+ return el;
126
+ }
127
+
128
+ // force first character to be uppercase
129
+ return el.charAt(0).toUpperCase() + el.substring(1);
130
+ }
131
+
132
+ function namecase (input, opt) {
133
+ if (Array.isArray(input)) {
134
+ return input.map(namecase);
135
+ }
136
+
137
+ if (typeof input === 'string') {
138
+ return nc(input, opt);
139
+ }
140
+
141
+ return input;
142
+ }
143
+
144
+ module.exports = namecase;
145
+ module.exports.checkName = checkName;
146
+ module.exports.normalize = normalize;