@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.
- package/node_modules/@compwright/namecase/LICENSE +26 -0
- package/node_modules/@compwright/namecase/README.md +49 -0
- package/node_modules/@compwright/namecase/bin/namecase +28 -0
- package/node_modules/@compwright/namecase/dist/namecase.min.js +4 -0
- package/node_modules/@compwright/namecase/dist/namecase.min.js.map +1 -0
- package/node_modules/@compwright/namecase/package.json +46 -0
- package/node_modules/@compwright/namecase/src/index.js +146 -0
- package/node_modules/@integration-app/sdk/bundle.js +404 -262
- package/node_modules/@integration-app/sdk/bundle.js.map +1 -1
- package/node_modules/@integration-app/sdk/client.d.ts +3 -3
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.d.ts +3 -7
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.js +16 -32
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.js.map +1 -1
- package/node_modules/@integration-app/sdk/integrations/accessors.d.ts +0 -6
- package/node_modules/@integration-app/sdk/integrations/accessors.js +1 -87
- package/node_modules/@integration-app/sdk/integrations/accessors.js.map +1 -1
- package/node_modules/@integration-app/sdk/json-schema/index.d.ts +1 -1
- package/node_modules/@integration-app/sdk/src/client.ts +3 -3
- package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.test.ts +11 -113
- package/node_modules/@integration-app/sdk/src/data-builder/formulas/case.ts +22 -46
- package/node_modules/@integration-app/sdk/src/integrations/accessors.ts +2 -122
- package/node_modules/@sinclair/typebox/package.json +40 -0
- package/node_modules/@sinclair/typebox/readme.md +740 -0
- package/node_modules/@sinclair/typebox/typebox.d.ts +351 -0
- package/node_modules/@sinclair/typebox/typebox.js +345 -0
- package/node_modules/@types/node/README.md +16 -0
- package/node_modules/@types/node/assert.d.ts +128 -0
- package/node_modules/@types/node/async_hooks.d.ts +229 -0
- package/node_modules/@types/node/buffer.d.ts +89 -0
- package/node_modules/@types/node/child_process.d.ts +514 -0
- package/node_modules/@types/node/cluster.d.ts +265 -0
- package/node_modules/@types/node/console.d.ts +142 -0
- package/node_modules/@types/node/constants.d.ts +18 -0
- package/node_modules/@types/node/crypto.d.ts +1283 -0
- package/node_modules/@types/node/dgram.d.ts +144 -0
- package/node_modules/@types/node/dns.d.ts +387 -0
- package/node_modules/@types/node/domain.d.ts +27 -0
- package/node_modules/@types/node/events.d.ts +82 -0
- package/node_modules/@types/node/fs/promises.d.ts +572 -0
- package/node_modules/@types/node/fs.d.ts +2281 -0
- package/node_modules/@types/node/globals.d.ts +747 -0
- package/node_modules/@types/node/globals.global.d.ts +1 -0
- package/node_modules/@types/node/http.d.ts +580 -0
- package/node_modules/@types/node/http2.d.ts +962 -0
- package/node_modules/@types/node/https.d.ts +271 -0
- package/node_modules/@types/node/index.d.ts +98 -0
- package/node_modules/@types/node/inspector.d.ts +3051 -0
- package/node_modules/@types/node/module.d.ts +56 -0
- package/node_modules/@types/node/net.d.ts +308 -0
- package/node_modules/@types/node/os.d.ts +243 -0
- package/node_modules/@types/node/package.json +232 -0
- package/node_modules/@types/node/path.d.ts +168 -0
- package/node_modules/@types/node/perf_hooks.d.ts +274 -0
- package/node_modules/@types/node/process.d.ts +413 -0
- package/node_modules/@types/node/punycode.d.ts +78 -0
- package/node_modules/@types/node/querystring.d.ts +31 -0
- package/node_modules/@types/node/readline.d.ts +174 -0
- package/node_modules/@types/node/repl.d.ts +398 -0
- package/node_modules/@types/node/stream.d.ts +359 -0
- package/node_modules/@types/node/string_decoder.d.ts +10 -0
- package/node_modules/@types/node/timers.d.ts +19 -0
- package/node_modules/@types/node/tls.d.ts +784 -0
- package/node_modules/@types/node/trace_events.d.ts +64 -0
- package/node_modules/@types/node/ts4.8/assert.d.ts +128 -0
- package/node_modules/@types/node/ts4.8/async_hooks.d.ts +229 -0
- package/node_modules/@types/node/ts4.8/buffer.d.ts +89 -0
- package/node_modules/@types/node/ts4.8/child_process.d.ts +514 -0
- package/node_modules/@types/node/ts4.8/cluster.d.ts +265 -0
- package/node_modules/@types/node/ts4.8/console.d.ts +142 -0
- package/node_modules/@types/node/ts4.8/constants.d.ts +18 -0
- package/node_modules/@types/node/ts4.8/crypto.d.ts +1283 -0
- package/node_modules/@types/node/ts4.8/dgram.d.ts +144 -0
- package/node_modules/@types/node/ts4.8/dns.d.ts +387 -0
- package/node_modules/@types/node/ts4.8/domain.d.ts +27 -0
- package/node_modules/@types/node/ts4.8/events.d.ts +82 -0
- package/node_modules/@types/node/ts4.8/fs/promises.d.ts +572 -0
- package/node_modules/@types/node/ts4.8/fs.d.ts +2281 -0
- package/node_modules/@types/node/ts4.8/globals.d.ts +746 -0
- package/node_modules/@types/node/ts4.8/globals.global.d.ts +1 -0
- package/node_modules/@types/node/ts4.8/http.d.ts +580 -0
- package/node_modules/@types/node/ts4.8/http2.d.ts +962 -0
- package/node_modules/@types/node/ts4.8/https.d.ts +271 -0
- package/node_modules/@types/node/ts4.8/index.d.ts +53 -0
- package/node_modules/@types/node/ts4.8/inspector.d.ts +3051 -0
- package/node_modules/@types/node/ts4.8/module.d.ts +56 -0
- package/node_modules/@types/node/ts4.8/net.d.ts +308 -0
- package/node_modules/@types/node/ts4.8/os.d.ts +243 -0
- package/node_modules/@types/node/ts4.8/path.d.ts +168 -0
- package/node_modules/@types/node/ts4.8/perf_hooks.d.ts +274 -0
- package/node_modules/@types/node/ts4.8/process.d.ts +413 -0
- package/node_modules/@types/node/ts4.8/punycode.d.ts +78 -0
- package/node_modules/@types/node/ts4.8/querystring.d.ts +31 -0
- package/node_modules/@types/node/ts4.8/readline.d.ts +174 -0
- package/node_modules/@types/node/ts4.8/repl.d.ts +398 -0
- package/node_modules/@types/node/ts4.8/stream.d.ts +359 -0
- package/node_modules/@types/node/ts4.8/string_decoder.d.ts +10 -0
- package/node_modules/@types/node/ts4.8/timers.d.ts +19 -0
- package/node_modules/@types/node/ts4.8/tls.d.ts +784 -0
- package/node_modules/@types/node/ts4.8/trace_events.d.ts +64 -0
- package/node_modules/@types/node/ts4.8/tty.d.ts +69 -0
- package/node_modules/@types/node/ts4.8/url.d.ts +149 -0
- package/node_modules/@types/node/ts4.8/util.d.ts +216 -0
- package/node_modules/@types/node/ts4.8/v8.d.ts +190 -0
- package/node_modules/@types/node/ts4.8/vm.d.ts +155 -0
- package/node_modules/@types/node/ts4.8/wasi.d.ts +89 -0
- package/node_modules/@types/node/ts4.8/worker_threads.d.ts +241 -0
- package/node_modules/@types/node/ts4.8/zlib.d.ts +364 -0
- package/node_modules/@types/node/tty.d.ts +69 -0
- package/node_modules/@types/node/url.d.ts +149 -0
- package/node_modules/@types/node/util.d.ts +216 -0
- package/node_modules/@types/node/v8.d.ts +190 -0
- package/node_modules/@types/node/vm.d.ts +155 -0
- package/node_modules/@types/node/wasi.d.ts +89 -0
- package/node_modules/@types/node/worker_threads.d.ts +241 -0
- package/node_modules/@types/node/zlib.d.ts +364 -0
- package/package.json +2 -5
- package/node_modules/@integration-app/sdk/.DS_Store +0 -0
- package/node_modules/@integration-app/sdk/.gitignore +0 -11
- package/node_modules/@integration-app/sdk/.npmignore +0 -0
- package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.d.ts +0 -23
- package/node_modules/@integration-app/sdk/app-data-collections/app-data-collections.js.map +0 -1
- package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.d.ts +0 -20
- package/node_modules/@integration-app/sdk/app-data-schemas/app-data-schemas.js.map +0 -1
- package/node_modules/@integration-app/sdk/app-events/app-events.d.ts +0 -44
- package/node_modules/@integration-app/sdk/app-events/app-events.js.map +0 -1
- package/node_modules/@integration-app/sdk/connection-client.d.ts +0 -12
- package/node_modules/@integration-app/sdk/connection-client.js +0 -31
- package/node_modules/@integration-app/sdk/connection-client.js.map +0 -1
- package/node_modules/@integration-app/sdk/connections/connections.d.ts +0 -46
- package/node_modules/@integration-app/sdk/connections/connections.js.map +0 -1
- package/node_modules/@integration-app/sdk/connector-api/connector-api.d.ts +0 -157
- package/node_modules/@integration-app/sdk/connector-api/connector-api.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/findExternalRecordId.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.js +0 -2
- package/node_modules/@integration-app/sdk/data-builder/first-name.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.d.ts +0 -10
- package/node_modules/@integration-app/sdk/data-builder/formulas/anyOfOption.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/base.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js +0 -246
- package/node_modules/@integration-app/sdk/data-builder/formulas/case.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js +0 -85
- package/node_modules/@integration-app/sdk/data-builder/formulas/concat.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js +0 -64
- package/node_modules/@integration-app/sdk/data-builder/formulas/copy.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js +0 -44
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractDate.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js +0 -44
- package/node_modules/@integration-app/sdk/data-builder/formulas/extractTime.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/findAppRecordId.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js +0 -26
- package/node_modules/@integration-app/sdk/data-builder/formulas/findExternalRecordId.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js +0 -14
- package/node_modules/@integration-app/sdk/data-builder/formulas/first-name.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js +0 -63
- package/node_modules/@integration-app/sdk/data-builder/formulas/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js +0 -112
- package/node_modules/@integration-app/sdk/data-builder/formulas/iterate.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js +0 -18
- package/node_modules/@integration-app/sdk/data-builder/formulas/lookup.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js +0 -114
- package/node_modules/@integration-app/sdk/data-builder/formulas/map.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js +0 -49
- package/node_modules/@integration-app/sdk/data-builder/formulas/tpl.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/formulas/types.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-builder/formulas/types.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/index.test.js +0 -295
- package/node_modules/@integration-app/sdk/data-builder/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-builder/locators.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-builder/locators.test.js +0 -775
- package/node_modules/@integration-app/sdk/data-builder/locators.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/conditions.d.ts +0 -0
- package/node_modules/@integration-app/sdk/data-filter/conditions.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/data-filter.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/data-filter.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/index.test.js +0 -43
- package/node_modules/@integration-app/sdk/data-filter/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-filter/operators.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-filter/operators.test.js +0 -490
- package/node_modules/@integration-app/sdk/data-filter/operators.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-links/data-links.d.ts +0 -58
- package/node_modules/@integration-app/sdk/data-links/data-links.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-schema/index.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/data-schema/index.test.js +0 -86
- package/node_modules/@integration-app/sdk/data-schema/index.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/data-sources/data-sources.d.ts +0 -41
- package/node_modules/@integration-app/sdk/data-sources/data-sources.js.map +0 -1
- package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.d.ts +0 -30
- package/node_modules/@integration-app/sdk/endpoints/endpoint-spec.js.map +0 -1
- package/node_modules/@integration-app/sdk/field-mappings/field-mappings.d.ts +0 -29
- package/node_modules/@integration-app/sdk/field-mappings/field-mappings.js.map +0 -1
- package/node_modules/@integration-app/sdk/flow-runs/flow-runs.d.ts +0 -51
- package/node_modules/@integration-app/sdk/flow-runs/flow-runs.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/flows.d.ts +0 -156
- package/node_modules/@integration-app/sdk/flows/flows.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.d.ts +0 -3
- package/node_modules/@integration-app/sdk/flows/nodes/data-record-delete-trigger.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/nodes/nodes.d.ts +0 -25
- package/node_modules/@integration-app/sdk/flows/nodes/nodes.js.map +0 -1
- package/node_modules/@integration-app/sdk/flows/utils.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/flows/utils.test.js +0 -62
- package/node_modules/@integration-app/sdk/flows/utils.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/integration-elements/integration-elements.d.ts +0 -21
- package/node_modules/@integration-app/sdk/integration-elements/integration-elements.js.map +0 -1
- package/node_modules/@integration-app/sdk/integrations/integrations.d.ts +0 -48
- package/node_modules/@integration-app/sdk/integrations/integrations.js.map +0 -1
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js +0 -194
- package/node_modules/@integration-app/sdk/json-schema/json-schema.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js +0 -352
- package/node_modules/@integration-app/sdk/json-schema/schema-builder.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/jwt.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/jwt.test.js +0 -9
- package/node_modules/@integration-app/sdk/jwt.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/package-lock.json +0 -3834
- package/node_modules/@integration-app/sdk/udm/activities.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/udm/activities.test.js +0 -40
- package/node_modules/@integration-app/sdk/udm/activities.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/campaign-members.d.ts +0 -45
- package/node_modules/@integration-app/sdk/udm/campaign-members.js +0 -99
- package/node_modules/@integration-app/sdk/udm/campaign-members.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/contacts.test.d.ts +0 -1
- package/node_modules/@integration-app/sdk/udm/contacts.test.js +0 -136
- package/node_modules/@integration-app/sdk/udm/contacts.test.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-activities.d.ts +0 -17
- package/node_modules/@integration-app/sdk/udm/crm-activities.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-activity.d.ts +0 -11
- package/node_modules/@integration-app/sdk/udm/crm-activity.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-companies.d.ts +0 -14
- package/node_modules/@integration-app/sdk/udm/crm-companies.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-contact.d.ts +0 -10
- package/node_modules/@integration-app/sdk/udm/crm-contact.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-contacts.d.ts +0 -16
- package/node_modules/@integration-app/sdk/udm/crm-contacts.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-deals.d.ts +0 -15
- package/node_modules/@integration-app/sdk/udm/crm-deals.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/crm-leads.d.ts +0 -16
- package/node_modules/@integration-app/sdk/udm/crm-leads.js.map +0 -1
- package/node_modules/@integration-app/sdk/udm/members.d.ts +0 -45
- package/node_modules/@integration-app/sdk/udm/members.js.map +0 -1
- package/node_modules/@integration-app/sdk/users/users.d.ts +0 -5
- 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
|
+
[](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;
|