@integration-app/react 0.1.1 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
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;