@stryke/string-format 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/acronyms.cjs CHANGED
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ACRONYMS = void 0;
7
- const ACRONYMS = exports.ACRONYMS = ["3D", "4D", "5G", "6G", "7G", "8G", "ACID", "AES", "AI", "AJAX", "API", "AR", "ASCII", "B2B", "B2C", "BFF", "BI", "BIOS", "BGP", "BOM", "BYOD", "C2C", "CAGR", "CAPTCHA", "CD", "CDN", "CDP", "CI", "CI/CD", "CIAM", "CICD", "CLI", "CMDB", "CORS", "CPU", "CRUD", "CSR", "CSS", "CX", "DAG", "DBMS", "DDoS", "DNS", "DNSSEC", "DOM", "DSN", "DR", "DRM", "DWH", "E2E", "EAI", "EKS", "EOF", "EOD", "ETC", "ETL", "EULA", "FIDO", "FQDN", "FTP", "FaaS", "GDPR", "GCP", "GPU", "GUID", "GUI", "GZIP", "HCI", "HDD", "HDFS", "HIPAA", "HMAC", "HOTP", "HSM", "HTML", "HTTP", "HTTP/2", "HTTP/2.0", "HTTP/3", "HTTP/3.0", "HTTP2", "HTTPS", "HTTPS/2", "HTTPS/3", "HTTPS3", "IAM", "IAMM", "IAMT", "IaaS", "ID", "IMAP", "IP", "IPFS", "IoT", "JSON", "JSONP", "JWT", "K8s", "KMS", "KPI", "KV", "LAN", "LHS", "LXC", "MFA", "ML", "MLOps", "MVC", "MVP", "NAS", "NAT", "NDA", "NFS", "NIST", "NLP", "NPS", "OCR", "OEM", "OKR", "OLAP", "OLTP", "OOP", "ORM", "OS", "OSS", "OSINT", "OTP", "P2P", "PDP", "PaaS", "PCI", "PKI", "PP", "PWA", "PX", "QA", "R2", "RAID", "RAM", "RDS", "REST", "RHS", "RPC", "RPA", "RUM", "RSS", "S3", "SAN", "SASE", "SDLC", "SDK", "SEO", "SFTP", "SIEM", "SLA", "SMB", "SMTP", "SOAP", "SOC", "SOA", "SPDY", "SPF", "SQL", "SRV", "SRE", "SSH", "SSDL", "SSO", "SSL", "SSR", "TDD", "TLD", "TLS", "TLS1.3", "TOTP", "TRPC", "TTL", "UDP", "UI", "UID", "URI", "URL", "UTF", "UUID", "UX", "VM", "VLAN", "VPN", "VR", "WAF", "WAN", "WLAN", "WPA", "XACML", "XML", "XSRF", "XSS", "XR", "YAML", "ZTA"];
7
+ const ACRONYMS = exports.ACRONYMS = ["3D", "4D", "5G", "6G", "7G", "8G", "ACID", "AES", "AI", "AJAX", "API", "AR", "ASCII", "B2B", "B2C", "BFF", "BI", "BIOS", "BGP", "BOM", "BYOD", "C2C", "CAGR", "CAPTCHA", "CD", "CDN", "CDP", "CI", "CI/CD", "CIAM", "CICD", "CLI", "CMDB", "CORS", "CPU", "CRUD", "CSR", "CSS", "CX", "DAG", "DBMS", "DDoS", "DNS", "DNSSEC", "DOM", "DSN", "DR", "DRM", "DWH", "E2E", "EAI", "EKS", "EOF", "EOD", "ETC", "ETL", "EULA", "FIDO", "FQDN", "FTP", "FaaS", "GDPR", "GCP", "GPU", "GUID", "GUI", "GZIP", "HCI", "HDD", "HDFS", "HIPAA", "HMAC", "HOTP", "HSM", "HTML", "HTTP", "HTTP/2", "HTTP/2.0", "HTTP/3", "HTTP/3.0", "HTTP2", "HTTPS", "HTTPS/2", "HTTPS/3", "HTTPS3", "IAM", "IAMM", "IAMT", "IaaS", "ID", "IMAP", "IP", "IPFS", "IoT", "JSON", "JSONP", "JWT", "K8s", "KMS", "KPI", "KV", "LAN", "LHS", "LXC", "MFA", "ML", "MLOps", "MVC", "MVP", "NAS", "NAT", "NDA", "NFS", "NIST", "NLP", "NPS", "OCR", "OEM", "OKR", "OLAP", "OLTP", "OOP", "ORM", "OS", "OSS", "OSINT", "OTP", "P2P", "PDP", "PaaS", "PCI", "PKI", "PP", "PWA", "PX", "QA", "R2", "RAID", "RAM", "RDS", "REST", "RHS", "RPC", "RPA", "RUM", "RSS", "S3", "SAN", "SASE", "SDLC", "SDK", "SEO", "SFTP", "SIEM", "SLA", "SMB", "SMTP", "SOAP", "SOC", "SOA", "SPDY", "SPF", "SQL", "SRV", "SRE", "SSH", "SSDL", "SSO", "SSL", "SSR", "TDD", "TLD", "TLS", "TLS1.3", "TOTP", "TRPC", "TTL", "UDP", "UI", "UID", "URI", "URL", "UTF", "UUID", "UX", "VM", "VLAN", "VPN", "VR", "WAF", "WAN", "WLAN", "WPA", "XACML", "XDG", "XML", "XSRF", "XSS", "XR", "YAML", "ZTA"];
package/dist/acronyms.mjs CHANGED
@@ -1 +1 @@
1
- export const ACRONYMS=["3D","4D","5G","6G","7G","8G","ACID","AES","AI","AJAX","API","AR","ASCII","B2B","B2C","BFF","BI","BIOS","BGP","BOM","BYOD","C2C","CAGR","CAPTCHA","CD","CDN","CDP","CI","CI/CD","CIAM","CICD","CLI","CMDB","CORS","CPU","CRUD","CSR","CSS","CX","DAG","DBMS","DDoS","DNS","DNSSEC","DOM","DSN","DR","DRM","DWH","E2E","EAI","EKS","EOF","EOD","ETC","ETL","EULA","FIDO","FQDN","FTP","FaaS","GDPR","GCP","GPU","GUID","GUI","GZIP","HCI","HDD","HDFS","HIPAA","HMAC","HOTP","HSM","HTML","HTTP","HTTP/2","HTTP/2.0","HTTP/3","HTTP/3.0","HTTP2","HTTPS","HTTPS/2","HTTPS/3","HTTPS3","IAM","IAMM","IAMT","IaaS","ID","IMAP","IP","IPFS","IoT","JSON","JSONP","JWT","K8s","KMS","KPI","KV","LAN","LHS","LXC","MFA","ML","MLOps","MVC","MVP","NAS","NAT","NDA","NFS","NIST","NLP","NPS","OCR","OEM","OKR","OLAP","OLTP","OOP","ORM","OS","OSS","OSINT","OTP","P2P","PDP","PaaS","PCI","PKI","PP","PWA","PX","QA","R2","RAID","RAM","RDS","REST","RHS","RPC","RPA","RUM","RSS","S3","SAN","SASE","SDLC","SDK","SEO","SFTP","SIEM","SLA","SMB","SMTP","SOAP","SOC","SOA","SPDY","SPF","SQL","SRV","SRE","SSH","SSDL","SSO","SSL","SSR","TDD","TLD","TLS","TLS1.3","TOTP","TRPC","TTL","UDP","UI","UID","URI","URL","UTF","UUID","UX","VM","VLAN","VPN","VR","WAF","WAN","WLAN","WPA","XACML","XML","XSRF","XSS","XR","YAML","ZTA"];
1
+ export const ACRONYMS=["3D","4D","5G","6G","7G","8G","ACID","AES","AI","AJAX","API","AR","ASCII","B2B","B2C","BFF","BI","BIOS","BGP","BOM","BYOD","C2C","CAGR","CAPTCHA","CD","CDN","CDP","CI","CI/CD","CIAM","CICD","CLI","CMDB","CORS","CPU","CRUD","CSR","CSS","CX","DAG","DBMS","DDoS","DNS","DNSSEC","DOM","DSN","DR","DRM","DWH","E2E","EAI","EKS","EOF","EOD","ETC","ETL","EULA","FIDO","FQDN","FTP","FaaS","GDPR","GCP","GPU","GUID","GUI","GZIP","HCI","HDD","HDFS","HIPAA","HMAC","HOTP","HSM","HTML","HTTP","HTTP/2","HTTP/2.0","HTTP/3","HTTP/3.0","HTTP2","HTTPS","HTTPS/2","HTTPS/3","HTTPS3","IAM","IAMM","IAMT","IaaS","ID","IMAP","IP","IPFS","IoT","JSON","JSONP","JWT","K8s","KMS","KPI","KV","LAN","LHS","LXC","MFA","ML","MLOps","MVC","MVP","NAS","NAT","NDA","NFS","NIST","NLP","NPS","OCR","OEM","OKR","OLAP","OLTP","OOP","ORM","OS","OSS","OSINT","OTP","P2P","PDP","PaaS","PCI","PKI","PP","PWA","PX","QA","R2","RAID","RAM","RDS","REST","RHS","RPC","RPA","RUM","RSS","S3","SAN","SASE","SDLC","SDK","SEO","SFTP","SIEM","SLA","SMB","SMTP","SOAP","SOC","SOA","SPDY","SPF","SQL","SRV","SRE","SSH","SSDL","SSO","SSL","SSR","TDD","TLD","TLS","TLS1.3","TOTP","TRPC","TTL","UDP","UI","UID","URI","URL","UTF","UUID","UX","VM","VLAN","VPN","VR","WAF","WAN","WLAN","WPA","XACML","XDG","XML","XSRF","XSS","XR","YAML","ZTA"];
@@ -5,10 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.camelCase = camelCase;
7
7
  exports.isCamelCase = isCamelCase;
8
+ var _acronyms = require("./acronyms.cjs");
8
9
  var _lowerCaseFirst = require("./lower-case-first.cjs");
9
10
  var _pascalCase = require("./pascal-case.cjs");
10
11
  function isCamelCase(e) {
11
- return e ? /^[a-z][a-zA-Z0-9]*$/.test(e) : !1;
12
+ return e ? /^[a-z][a-z0-9]*$/.test(e) && _acronyms.ACRONYMS.includes(e) || /^(?:[a-z][a-z0-9]*[A-Z]+)*$/.test(e) : !1;
12
13
  }
13
14
  function camelCase(e) {
14
15
  return isCamelCase(e) || e === void 0 ? e : (0, _lowerCaseFirst.lowerCaseFirst)((0, _pascalCase.pascalCase)(e));
@@ -1 +1 @@
1
- import{lowerCaseFirst as r}from"./lower-case-first";import{pascalCase as a}from"./pascal-case";export function isCamelCase(e){return e?/^[a-z][a-zA-Z0-9]*$/.test(e):!1}export function camelCase(e){return isCamelCase(e)||e===void 0?e:r(a(e))}
1
+ import{ACRONYMS as r}from"./acronyms";import{lowerCaseFirst as a}from"./lower-case-first";import{pascalCase as s}from"./pascal-case";export function isCamelCase(e){return e?/^[a-z][a-z0-9]*$/.test(e)&&r.includes(e)||/^(?:[a-z][a-z0-9]*[A-Z]+)*$/.test(e):!1}export function camelCase(e){return isCamelCase(e)||e===void 0?e:a(s(e))}
@@ -5,10 +5,11 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.isPascalCase = isPascalCase;
7
7
  exports.pascalCase = pascalCase;
8
+ var _acronyms = require("./acronyms.cjs");
8
9
  var _getWords = require("./get-words.cjs");
9
10
  function isPascalCase(e) {
10
- return e ? /^[A-Z][a-zA-Z0-9]*$/.test(e) : !1;
11
+ return e ? /^[A-Z][A-Z0-9]*$/.test(e) && _acronyms.ACRONYMS.includes(e) || /^(?:[A-Z][A-Z0-9]*[a-z]+)*$/.test(e) : !1;
11
12
  }
12
13
  function pascalCase(e) {
13
- return e === void 0 ? e : (0, _getWords.getWords)(e).map(n => n.length > 0 ? n.trim().charAt(0).toUpperCase() + n.trim().slice(1) : "").join("");
14
+ return isPascalCase(e) || e === void 0 ? e : (0, _getWords.getWords)(e).map(r => r.length > 0 ? r.trim().charAt(0).toUpperCase() + r.trim().slice(1).toLowerCase() : "").join("");
14
15
  }
@@ -1 +1 @@
1
- import{getWords as r}from"./get-words";export function isPascalCase(e){return e?/^[A-Z][a-zA-Z0-9]*$/.test(e):!1}export function pascalCase(e){return e===void 0?e:r(e).map(n=>n.length>0?n.trim().charAt(0).toUpperCase()+n.trim().slice(1):"").join("")}
1
+ import{ACRONYMS as s}from"./acronyms";import{getWords as t}from"./get-words";export function isPascalCase(e){return e?/^[A-Z][A-Z0-9]*$/.test(e)&&s.includes(e)||/^(?:[A-Z][A-Z0-9]*[a-z]+)*$/.test(e):!1}export function pascalCase(e){return isPascalCase(e)||e===void 0?e:t(e).map(r=>r.length>0?r.trim().charAt(0).toUpperCase()+r.trim().slice(1).toLowerCase():"").join("")}
@@ -3,10 +3,15 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.isPeriodSplit = isPeriodSplit;
6
7
  exports.periodSplit = periodSplit;
7
8
  var _types = require("@stryke/types");
8
9
  var _upperCaseFirst = require("./upper-case-first.cjs");
9
- function periodSplit(t) {
10
- const e = t?.replace(/[A-Z]+/g, r => (0, _upperCaseFirst.upperCaseFirst)(r) ?? _types.EMPTY_STRING)?.split(/(?=[A-Z])|[\s._-]/).map(r => r.toLowerCase()) ?? [];
11
- return e.length === 0 ? "" : e.length === 1 ? e[0] : e.reduce((r, s) => `${r}.${s.toLowerCase()}`.toLowerCase());
10
+ function isPeriodSplit(e) {
11
+ return e ? /^[a-z]+(?:\.[a-z0-9]+)*$/.test(e) : !1;
12
+ }
13
+ function periodSplit(e) {
14
+ if (!e || isPeriodSplit(e)) return e;
15
+ const t = e?.replace(/[A-Z]+/g, r => (0, _upperCaseFirst.upperCaseFirst)(r) ?? _types.EMPTY_STRING)?.split(/(?=[A-Z])|[\s._-]/).map(r => r.toLowerCase()) ?? [];
16
+ return t.length === 0 ? "" : t.length === 1 ? t[0] : t.reduce((r, s) => `${r}.${s.toLowerCase()}`.toLowerCase());
12
17
  }
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Check if the input string is in snake case.
3
+ *
4
+ * @remarks
5
+ * Snake case is defined as all lowercase letters with underscores separating words - "this_is_an_example"
6
+ *
7
+ * @param input - The input string to check.
8
+ * @returns True if the input is in snake case, false otherwise.
9
+ */
10
+ export declare function isPeriodSplit(input: string | undefined): boolean;
1
11
  /**
2
12
  * Make all characters lowercase and add a period in between each word
3
13
  *
@@ -1 +1 @@
1
- import{EMPTY_STRING as n}from"@stryke/types";import{upperCaseFirst as i}from"./upper-case-first";export function periodSplit(t){const e=t?.replace(/[A-Z]+/g,r=>i(r)??n)?.split(/(?=[A-Z])|[\s._-]/).map(r=>r.toLowerCase())??[];return e.length===0?"":e.length===1?e[0]:e.reduce((r,s)=>`${r}.${s.toLowerCase()}`.toLowerCase())}
1
+ import{EMPTY_STRING as n}from"@stryke/types";import{upperCaseFirst as o}from"./upper-case-first";export function isPeriodSplit(e){return e?/^[a-z]+(?:\.[a-z0-9]+)*$/.test(e):!1}export function periodSplit(e){if(!e||isPeriodSplit(e))return e;const t=e?.replace(/[A-Z]+/g,r=>o(r)??n)?.split(/(?=[A-Z])|[\s._-]/).map(r=>r.toLowerCase())??[];return t.length===0?"":t.length===1?t[0]:t.reduce((r,s)=>`${r}.${s.toLowerCase()}`.toLowerCase())}
@@ -7,6 +7,7 @@ exports.LOWER_CASE_WHEN_NOT_FIRST = exports.FORMAT_MAPPING = void 0;
7
7
  exports.isTitleCase = isTitleCase;
8
8
  exports.titleCase = titleCase;
9
9
  var _acronyms = require("./acronyms.cjs");
10
+ var _getWords = require("./get-words.cjs");
10
11
  var _upperCaseFirst = require("./upper-case-first.cjs");
11
12
  const FORMAT_MAPPING = exports.FORMAT_MAPPING = _acronyms.ACRONYMS.reduce((e, t) => (e[t.toLowerCase()] = t, e), {
12
13
  cspell: "CSpell",
@@ -19,6 +20,6 @@ function isTitleCase(e) {
19
20
  }
20
21
  function titleCase(e, t = {}) {
21
22
  if (isTitleCase(e) || e === void 0) return e;
22
- const s = n => n.toLowerCase().split(/[\s\-_]+/).filter(Boolean).map((r, i) => !t.skipLowerCaseWhenNotFirst && LOWER_CASE_WHEN_NOT_FIRST.includes(r.toLowerCase()) && i > 0 ? r.toLowerCase() : !t.skipFormatMapping && Object.keys(FORMAT_MAPPING).includes(r.toLowerCase()) ? FORMAT_MAPPING[r.toLowerCase()] : t.mapping && Object.keys(t.mapping).includes(r.toLowerCase()) ? t.mapping[r.toLowerCase()] : `${(0, _upperCaseFirst.upperCaseFirst)(r.toLowerCase())}`).join(" ");
23
+ const s = n => (0, _getWords.getWords)(n).filter(Boolean).map(r => r.toLowerCase()).map((r, i) => !t.skipLowerCaseWhenNotFirst && LOWER_CASE_WHEN_NOT_FIRST.includes(r.toLowerCase()) && i > 0 ? r.toLowerCase() : !t.skipFormatMapping && Object.keys(FORMAT_MAPPING).includes(r.toLowerCase()) ? FORMAT_MAPPING[r.toLowerCase()] : t.mapping && Object.keys(t.mapping).includes(r.toLowerCase()) ? t.mapping[r.toLowerCase()] : `${(0, _upperCaseFirst.upperCaseFirst)(r.toLowerCase())}`).join(" ");
23
24
  return e.split(/\s+-\s+/).map(n => s(n)).join(" - ");
24
25
  }
@@ -1 +1 @@
1
- import{ACRONYMS as o}from"./acronyms";import{upperCaseFirst as a}from"./upper-case-first";export const FORMAT_MAPPING=o.reduce((e,t)=>(e[t.toLowerCase()]=t,e),{cspell:"CSpell",eslint:"ESLint",nx:"Nx"}),LOWER_CASE_WHEN_NOT_FIRST=["a","an","the","is","are","of","and","to","in","for","on","with","as","at","by"];export function isTitleCase(e){return e?e.split(/[\s\-_]+/).filter(Boolean).every((s,n)=>Object.values(FORMAT_MAPPING).includes(s)||n>0&&LOWER_CASE_WHEN_NOT_FIRST.includes(s.toLowerCase())&&s===s.toLowerCase()?!0:/^[A-Z][a-z0-9]*$/.test(s)):!1}export function titleCase(e,t={}){if(isTitleCase(e)||e===void 0)return e;const s=n=>n.toLowerCase().split(/[\s\-_]+/).filter(Boolean).map((r,i)=>!t.skipLowerCaseWhenNotFirst&&LOWER_CASE_WHEN_NOT_FIRST.includes(r.toLowerCase())&&i>0?r.toLowerCase():!t.skipFormatMapping&&Object.keys(FORMAT_MAPPING).includes(r.toLowerCase())?FORMAT_MAPPING[r.toLowerCase()]:t.mapping&&Object.keys(t.mapping).includes(r.toLowerCase())?t.mapping[r.toLowerCase()]:`${a(r.toLowerCase())}`).join(" ");return e.split(/\s+-\s+/).map(n=>s(n)).join(" - ")}
1
+ import{ACRONYMS as o}from"./acronyms";import{getWords as a}from"./get-words";import{upperCaseFirst as p}from"./upper-case-first";export const FORMAT_MAPPING=o.reduce((e,t)=>(e[t.toLowerCase()]=t,e),{cspell:"CSpell",eslint:"ESLint",nx:"Nx"}),LOWER_CASE_WHEN_NOT_FIRST=["a","an","the","is","are","of","and","to","in","for","on","with","as","at","by"];export function isTitleCase(e){return e?e.split(/[\s\-_]+/).filter(Boolean).every((s,n)=>Object.values(FORMAT_MAPPING).includes(s)||n>0&&LOWER_CASE_WHEN_NOT_FIRST.includes(s.toLowerCase())&&s===s.toLowerCase()?!0:/^[A-Z][a-z0-9]*$/.test(s)):!1}export function titleCase(e,t={}){if(isTitleCase(e)||e===void 0)return e;const s=n=>a(n).filter(Boolean).map(r=>r.toLowerCase()).map((r,i)=>!t.skipLowerCaseWhenNotFirst&&LOWER_CASE_WHEN_NOT_FIRST.includes(r.toLowerCase())&&i>0?r.toLowerCase():!t.skipFormatMapping&&Object.keys(FORMAT_MAPPING).includes(r.toLowerCase())?FORMAT_MAPPING[r.toLowerCase()]:t.mapping&&Object.keys(t.mapping).includes(r.toLowerCase())?t.mapping[r.toLowerCase()]:`${p(r.toLowerCase())}`).join(" ");return e.split(/\s+-\s+/).map(n=>s(n)).join(" - ")}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stryke/string-format",
3
- "version": "0.6.1",
3
+ "version": "0.7.0",
4
4
  "type": "module",
5
5
  "description": "A package containing utility functions to transform strings into various formats.",
6
6
  "repository": {
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "private": false,
12
12
  "publishConfig": { "access": "public" },
13
- "dependencies": { "@stryke/helpers": "^0.7.1", "@stryke/types": "^0.8.8" },
13
+ "dependencies": { "@stryke/helpers": "^0.7.2", "@stryke/types": "^0.8.8" },
14
14
  "devDependencies": {},
15
15
  "sideEffects": false,
16
16
  "files": ["dist/**/*"],
@@ -333,5 +333,5 @@
333
333
  "main": "./dist/index.cjs",
334
334
  "module": "./dist/index.mjs",
335
335
  "types": "./dist/index.d.ts",
336
- "gitHead": "65b0557df259542217c34e7e93413b662359e3d3"
336
+ "gitHead": "0f8bd54096208a17eede855ea5dfdc00ed3b2566"
337
337
  }