@planningcenter/url 3.2.0-qa-60.0 → 3.2.0-qa-60.1
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/url.js +1 -1
- package/dist/url.js.map +1 -1
- package/dist/url.modern.js +1 -1
- package/dist/url.modern.js.map +1 -1
- package/dist/url.module.js +1 -1
- package/dist/url.module.js.map +1 -1
- package/dist/url.umd.js +1 -1
- package/dist/url.umd.js.map +1 -1
- package/package.json +1 -1
package/dist/url.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=function(n){return function(t){if(n&&t){var
|
|
1
|
+
var n=function(n){return function(t){if(n&&t){var e=function(){return"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http"};switch(n){case"production":return"https://"+t+"."+c();case"staging":return"https://"+t+"-staging."+c();case"testing":return"https://"+t+"-testing."+c();case"development":var r="test";try{r=location.hostname.match(/\pco\.(\w+)$/)[1]}catch(n){"localhost"!==location.hostname&&console.error(location.hostname+" is not a supported dev TLD")}var a=i(t);return e()+"://"+(a?a+".":"")+t+".pco."+r;case"prototype":return"https://"+o()+"."+t+".planningcenter.ninja";case"test":var s=i(t);return e()+"://"+(s?s+".":"")+t+".pco.test";default:return"http://"+t+"."+c()}}}},t=function(n){return"staging"===n&&"testing"===e()?"testing":n},e=function(){var n=window.location.origin;return n.endsWith("-testing.planningcenteronline.com")||n.endsWith("/testing.planningcenteronline.com")||n.endsWith(".testing.churchcenter.com")||n.endsWith("/testing.churchcenter.com")?"testing":n.endsWith("-staging.planningcenteronline.com")||n.endsWith("/staging.planningcenteronline.com")||n.endsWith(".staging.churchcenter.com")||n.endsWith("/staging.churchcenter.com")?"staging":n.endsWith(".planningcenteronline.com")||n.endsWith(".churchcenter.com")||n.endsWith("/churchcenter.com")?"production":n.endsWith(".planningcenter.ninja")||n.endsWith(".churchcenter.ninja")?"prototype":n.endsWith("pco.codes")||n.endsWith("pco.dev")||n.endsWith("pco.test")||n.endsWith("churchcenter.test")?"development":"production"},o=function(){var n,t,e=null==(n=location)||null==(t=n.hostname)?void 0:t.match(/(?:www\.)?(.+)\..+\.planningcenter\.ninja/);return e&&"localhost"!==e[1]?e[1]:"main"},i=function(n){var t,e,o=null==(t=location)||null==(e=t.hostname)?void 0:e.match(/^(.+?)\.(.+?)\.pco\.\w+$/);return o&&o[2]===n?o[1]:null},c=function(){var n=location.hostname.match(/planningcenter(online)?.com/);return null===n?"planningcenteronline.com":n[0]};exports.default=n,exports.inferEnvironment=e,exports.pcoApiUrl=function(o,i){var c=void 0===i?{}:i,r=c.env,a=void 0===r?e():r,s=c.squiggly,l=void 0===s||s;a=t(a);var h,p,u=l?"/~api":"";return u+="/"+o+"/v2",n(a)(l?(void 0===h&&(h=1),(p=window.location.hostname.split(".").slice(0,-1*(1+h)))["prototype"===e()?p.length-1:0].replace(/-staging$/,"").replace(/-testing$/,"")):"api")+u},exports.pcoUrl=function(o,i){var c=(void 0===i?{}:i).env,r=void 0===c?e():c;return r=t(r),n(r)(o)};
|
|
2
2
|
//# sourceMappingURL=url.js.map
|
package/dist/url.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","inferEnvironment","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","product","
|
|
1
|
+
{"version":3,"file":"url.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n env = resolveEnvironment(env)\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n env = resolveEnvironment(env)\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nconst resolveEnvironment = (env: Environment): Environment => {\n if (env === \"staging\" && inferEnvironment() === \"testing\") return \"testing\"\n return env\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","resolveEnvironment","inferEnvironment","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","pcoApiUrl","product","_ref2","_temp2","squiggly","_ref2$squiggly","tldLength","subdomains","path","split","slice","length","replace","_temp","_ref$env"],"mappings":"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"}
|
package/dist/url.modern.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const n=n=>t=>{if(!n||!t)return;const e=()=>"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http";switch(n){case"production":return`https://${t}.${
|
|
1
|
+
const n=n=>t=>{if(!n||!t)return;const e=()=>"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http";switch(n){case"production":return`https://${t}.${r()}`;case"staging":return`https://${t}-staging.${r()}`;case"testing":return`https://${t}-testing.${r()}`;case"development":{let n="test";try{n=location.hostname.match(/\pco\.(\w+)$/)[1]}catch(n){"localhost"!==location.hostname&&console.error(`${location.hostname} is not a supported dev TLD`)}const o=s(t);return`${e()}://${o?`${o}.`:""}${t}.pco.${n}`}case"prototype":return`https://${i()}.${t}.planningcenter.ninja`;case"test":{const n=s(t);return`${e()}://${n?`${n}.`:""}${t}.pco.test`}default:return`http://${t}.${r()}`}};function t(t,{env:e=c()}={}){return e=o(e),n(e)(t)}function e(t,{env:e=c(),squiggly:i=!0}={}){e=o(e);let s=i?"/~api":"";return s+=`/${t}/v2`,n(e)(i?a():"api")+s}const o=n=>"staging"===n&&"testing"===c()?"testing":n,c=()=>{const n=window.location.origin;return n.endsWith("-testing.planningcenteronline.com")||n.endsWith("/testing.planningcenteronline.com")||n.endsWith(".testing.churchcenter.com")||n.endsWith("/testing.churchcenter.com")?"testing":n.endsWith("-staging.planningcenteronline.com")||n.endsWith("/staging.planningcenteronline.com")||n.endsWith(".staging.churchcenter.com")||n.endsWith("/staging.churchcenter.com")?"staging":n.endsWith(".planningcenteronline.com")||n.endsWith(".churchcenter.com")||n.endsWith("/churchcenter.com")?"production":n.endsWith(".planningcenter.ninja")||n.endsWith(".churchcenter.ninja")?"prototype":n.endsWith("pco.codes")||n.endsWith("pco.dev")||n.endsWith("pco.test")||n.endsWith("churchcenter.test")?"development":"production"},i=()=>{var n,t;const e=null==(n=location)||null==(t=n.hostname)?void 0:t.match(/(?:www\.)?(.+)\..+\.planningcenter\.ninja/);return e&&"localhost"!==e[1]?e[1]:"main"},s=n=>{var t,e;const o=null==(t=location)||null==(e=t.hostname)?void 0:e.match(/^(.+?)\.(.+?)\.pco\.\w+$/);return o&&o[2]===n?o[1]:null},r=()=>{const n=location.hostname.match(/planningcenter(online)?.com/);return null===n?"planningcenteronline.com":n[0]},a=()=>{const n=((n,t=1)=>window.location.hostname.split(".").slice(0,-1*(1+t)))();return n["prototype"===c()?n.length-1:0].replace(/-staging$/,"").replace(/-testing$/,"")};export{n as default,c as inferEnvironment,e as pcoApiUrl,t as pcoUrl};
|
|
2
2
|
//# sourceMappingURL=url.modern.js.map
|
package/dist/url.modern.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.modern.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","pcoUrl","product","inferEnvironment","pcoApiUrl","squiggly","path","inferProduct","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","subdomains","host","tldLength","split","slice","extractSubdomainsFrom","length","replace"],"mappings":"AAsBMA,MAAAA,EAAUC,GAAsBC,IACpC,IAAMD,IAAOC,EAAc,OAE3B,MAAMC,EAAqB,IACD,oBAAbC,UAA4BA,UAAYA,SAASC,UAC7B,WAAtBD,SAASC,SAAwB,QAEnC,OAGT,OAAQJ,GACN,IAAK,aACH,iBAAkBC,KAAeI,MACnC,IAAK,UACH,iBAAkBJ,aAAuBI,MAC3C,IAAK,UACH,iBAAkBJ,aAAuBI,MAC3C,IAAK,cAAe,CAClB,IAAIC,EAAM,OAEV,IACEA,EAAMH,SAASI,SAASC,MAAM,gBAAgB,EAM/C,CALC,MAAOC,GAEmB,cAAtBN,SAASI,UACXG,QAAQD,MAAM,GAAGN,SAASI,sCAE7B,CAED,MAAMI,EAASC,EAAaX,GAC5B,MAAO,GAAGC,SAA0BS,EAAY,GAAAA,KAAY,KAAKV,SAAmBK,GACrF,CACD,IAAK,YACH,iBAAkBO,OAAkBZ,yBACtC,IAAK,OAAQ,CACX,MAAMU,EAASC,EAAaX,GAC5B,SAAUC,SAA0BS,EAAS,GAAGA,KAAY,KAAKV,YAClE,CACD,QACE,gBAAiBA,KAAeI,MA7BpC,
|
|
1
|
+
{"version":3,"file":"url.modern.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n env = resolveEnvironment(env)\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n env = resolveEnvironment(env)\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nconst resolveEnvironment = (env: Environment): Environment => {\n if (env === \"staging\" && inferEnvironment() === \"testing\") return \"testing\"\n return env\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","pcoUrl","product","inferEnvironment","resolveEnvironment","pcoApiUrl","squiggly","path","inferProduct","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","subdomains","host","tldLength","split","slice","extractSubdomainsFrom","length","replace"],"mappings":"AAsBMA,MAAAA,EAAUC,GAAsBC,IACpC,IAAMD,IAAOC,EAAc,OAE3B,MAAMC,EAAqB,IACD,oBAAbC,UAA4BA,UAAYA,SAASC,UAC7B,WAAtBD,SAASC,SAAwB,QAEnC,OAGT,OAAQJ,GACN,IAAK,aACH,iBAAkBC,KAAeI,MACnC,IAAK,UACH,iBAAkBJ,aAAuBI,MAC3C,IAAK,UACH,iBAAkBJ,aAAuBI,MAC3C,IAAK,cAAe,CAClB,IAAIC,EAAM,OAEV,IACEA,EAAMH,SAASI,SAASC,MAAM,gBAAgB,EAM/C,CALC,MAAOC,GAEmB,cAAtBN,SAASI,UACXG,QAAQD,MAAM,GAAGN,SAASI,sCAE7B,CAED,MAAMI,EAASC,EAAaX,GAC5B,MAAO,GAAGC,SAA0BS,EAAY,GAAAA,KAAY,KAAKV,SAAmBK,GACrF,CACD,IAAK,YACH,iBAAkBO,OAAkBZ,yBACtC,IAAK,OAAQ,CACX,MAAMU,EAASC,EAAaX,GAC5B,SAAUC,SAA0BS,EAAS,GAAGA,KAAY,KAAKV,YAClE,CACD,QACE,gBAAiBA,KAAeI,MA7BpC,WAmCcS,EACdC,GACAf,IAAEA,EAAMgB,KAA8C,CAAA,GAGtD,OADAhB,EAAMiB,EAAmBjB,GAClBD,EAAOC,EAAPD,CAAYgB,EACpB,CAEeG,SAAAA,EACdH,GACAf,IACEA,EAAMgB,IADRG,SAEEA,GAAW,GACkC,CALjC,GAOdnB,EAAMiB,EAAmBjB,GACzB,IAAIoB,EAAOD,EAAW,QAAU,GAGhC,OAFAC,GAAQ,IAAIL,OAELhB,EAAOC,EAAPD,CAAYoB,EAAWE,IAAiB,OAASD,CACzD,CAED,MAAMH,EAAsBjB,GACd,YAARA,GAA4C,YAAvBgB,IAAyC,UAC3DhB,EAGIgB,EAAmB,KAC9B,MAAMM,EAASC,OAAOpB,SAASmB,OAE/B,OAAIA,EAAOE,SAAS,sCAChBF,EAAOE,SAAS,sCAChBF,EAAOE,SAAS,8BAChBF,EAAOE,SAAS,6BAH6C,UAI7DF,EAAOE,SAAS,sCAChBF,EAAOE,SAAS,sCAChBF,EAAOE,SAAS,8BAChBF,EAAOE,SAAS,6BAH6C,UAI7DF,EAAOE,SAAS,8BAChBF,EAAOE,SAAS,sBAChBF,EAAOE,SAAS,qBAFqC,aAGrDF,EAAOE,SAAS,0BAChBF,EAAOE,SAAS,uBADiC,YAEjDF,EAAOE,SAAS,cAChBF,EAAOE,SAAS,YAChBF,EAAOE,SAAS,aAChBF,EAAOE,SAAS,qBAHqB,cAKlC,cAOHX,EAAe,KACnB,IAAAY,EAAAC,EAAA,MAAMC,EAAS,OAAHF,EAAGtB,WAAA,OAAAuB,EAAAD,EAAUlB,eAAV,EAAAmB,EAAoBlB,MACjC,6CAGF,OAAImB,GAAwB,cAAdA,EAAO,GACZA,EAAO,GAGT,QAGHf,EAAgBX,IACpB,IAAA2B,EAAAC,EAAA,MAAMrB,EAAQ,OAAHoB,EAAGzB,WAAA,OAAA0B,EAAAD,EAAUrB,eAAV,EAAAsB,EAAoBrB,MAAM,4BACxC,OAAIA,GAASA,EAAM,KAAOP,EAAoBO,EAAM,SAIhDH,EAAS,KACb,MAAMsB,EAASxB,SAASI,SAASC,MAAM,+BAEvC,OAAe,OAAXmB,EACK,2BAEAA,EAAO,EACf,EAOGN,EAAe,KACnB,MAAMS,EALsB,EAACC,EAAMC,EAAY,IAKNT,OAAOpB,SAASI,SAJ7C0B,MAAM,KAAKC,MAAM,GAAsB,GAAlB,EAAIF,IAIlBG,GAEnB,OAAOL,EACkB,cAAvBd,IAAqCc,EAAWM,OAAS,EAAI,GAC7DC,QAAQ,YAAa,IAAIA,QAAQ,YAAa,GAFzC"}
|
package/dist/url.module.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var n=function(n){return function(t){if(n&&t){var e=function(){return"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http"};switch(n){case"production":return"https://"+t+"."+
|
|
1
|
+
var n=function(n){return function(t){if(n&&t){var e=function(){return"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http"};switch(n){case"production":return"https://"+t+"."+a();case"staging":return"https://"+t+"-staging."+a();case"testing":return"https://"+t+"-testing."+a();case"development":var o="test";try{o=location.hostname.match(/\pco\.(\w+)$/)[1]}catch(n){"localhost"!==location.hostname&&console.error(location.hostname+" is not a supported dev TLD")}var i=r(t);return e()+"://"+(i?i+".":"")+t+".pco."+o;case"prototype":return"https://"+c()+"."+t+".planningcenter.ninja";case"test":var s=r(t);return e()+"://"+(s?s+".":"")+t+".pco.test";default:return"http://"+t+"."+a()}}}};function t(t,e){var c=(void 0===e?{}:e).env,r=void 0===c?i():c;return r=o(r),n(r)(t)}function e(t,e){var c=void 0===e?{}:e,r=c.env,a=void 0===r?i():r,l=c.squiggly,h=void 0===l||l;a=o(a);var u=h?"/~api":"";return u+="/"+t+"/v2",n(a)(h?s():"api")+u}var o=function(n){return"staging"===n&&"testing"===i()?"testing":n},i=function(){var n=window.location.origin;return n.endsWith("-testing.planningcenteronline.com")||n.endsWith("/testing.planningcenteronline.com")||n.endsWith(".testing.churchcenter.com")||n.endsWith("/testing.churchcenter.com")?"testing":n.endsWith("-staging.planningcenteronline.com")||n.endsWith("/staging.planningcenteronline.com")||n.endsWith(".staging.churchcenter.com")||n.endsWith("/staging.churchcenter.com")?"staging":n.endsWith(".planningcenteronline.com")||n.endsWith(".churchcenter.com")||n.endsWith("/churchcenter.com")?"production":n.endsWith(".planningcenter.ninja")||n.endsWith(".churchcenter.ninja")?"prototype":n.endsWith("pco.codes")||n.endsWith("pco.dev")||n.endsWith("pco.test")||n.endsWith("churchcenter.test")?"development":"production"},c=function(){var n,t,e=null==(n=location)||null==(t=n.hostname)?void 0:t.match(/(?:www\.)?(.+)\..+\.planningcenter\.ninja/);return e&&"localhost"!==e[1]?e[1]:"main"},r=function(n){var t,e,o=null==(t=location)||null==(e=t.hostname)?void 0:e.match(/^(.+?)\.(.+?)\.pco\.\w+$/);return o&&o[2]===n?o[1]:null},a=function(){var n=location.hostname.match(/planningcenter(online)?.com/);return null===n?"planningcenteronline.com":n[0]},s=function(){var n,t=(void 0===n&&(n=1),window.location.hostname.split(".").slice(0,-1*(1+n)));return t["prototype"===i()?t.length-1:0].replace(/-staging$/,"").replace(/-testing$/,"")};export{n as default,i as inferEnvironment,e as pcoApiUrl,t as pcoUrl};
|
|
2
2
|
//# sourceMappingURL=url.module.js.map
|
package/dist/url.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.module.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","pcoUrl","product","_temp","inferEnvironment","
|
|
1
|
+
{"version":3,"file":"url.module.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n env = resolveEnvironment(env)\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n env = resolveEnvironment(env)\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nconst resolveEnvironment = (env: Environment): Environment => {\n if (env === \"staging\" && inferEnvironment() === \"testing\") return \"testing\"\n return env\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","pcoUrl","product","_temp","_ref$env","inferEnvironment","resolveEnvironment","pcoApiUrl","_ref2","_temp2","squiggly","_ref2$squiggly","path","inferProduct","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","tldLength","subdomains","split","slice","length","replace"],"mappings":"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"}
|
package/dist/url.umd.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((n||self).PLANNINGCENTER=n.PLANNINGCENTER||{},n.PLANNINGCENTER.url={}))}(this,function(n){var t=function(n){return function(t){if(n&&t){var e=function(){return"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http"};switch(n){case"production":return"https://"+t+"."+
|
|
1
|
+
!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(((n||self).PLANNINGCENTER=n.PLANNINGCENTER||{},n.PLANNINGCENTER.url={}))}(this,function(n){var t=function(n){return function(t){if(n&&t){var e=function(){return"undefined"!=typeof location&&location&&location.protocol&&"https:"===location.protocol?"https":"http"};switch(n){case"production":return"https://"+t+"."+r();case"staging":return"https://"+t+"-staging."+r();case"testing":return"https://"+t+"-testing."+r();case"development":var o="test";try{o=location.hostname.match(/\pco\.(\w+)$/)[1]}catch(n){"localhost"!==location.hostname&&console.error(location.hostname+" is not a supported dev TLD")}var a=c(t);return e()+"://"+(a?a+".":"")+t+".pco."+o;case"prototype":return"https://"+i()+"."+t+".planningcenter.ninja";case"test":var s=c(t);return e()+"://"+(s?s+".":"")+t+".pco.test";default:return"http://"+t+"."+r()}}}},e=function(n){return"staging"===n&&"testing"===o()?"testing":n},o=function(){var n=window.location.origin;return n.endsWith("-testing.planningcenteronline.com")||n.endsWith("/testing.planningcenteronline.com")||n.endsWith(".testing.churchcenter.com")||n.endsWith("/testing.churchcenter.com")?"testing":n.endsWith("-staging.planningcenteronline.com")||n.endsWith("/staging.planningcenteronline.com")||n.endsWith(".staging.churchcenter.com")||n.endsWith("/staging.churchcenter.com")?"staging":n.endsWith(".planningcenteronline.com")||n.endsWith(".churchcenter.com")||n.endsWith("/churchcenter.com")?"production":n.endsWith(".planningcenter.ninja")||n.endsWith(".churchcenter.ninja")?"prototype":n.endsWith("pco.codes")||n.endsWith("pco.dev")||n.endsWith("pco.test")||n.endsWith("churchcenter.test")?"development":"production"},i=function(){var n,t,e=null==(n=location)||null==(t=n.hostname)?void 0:t.match(/(?:www\.)?(.+)\..+\.planningcenter\.ninja/);return e&&"localhost"!==e[1]?e[1]:"main"},c=function(n){var t,e,o=null==(t=location)||null==(e=t.hostname)?void 0:e.match(/^(.+?)\.(.+?)\.pco\.\w+$/);return o&&o[2]===n?o[1]:null},r=function(){var n=location.hostname.match(/planningcenter(online)?.com/);return null===n?"planningcenteronline.com":n[0]};n.default=t,n.inferEnvironment=o,n.pcoApiUrl=function(n,i){var c=void 0===i?{}:i,r=c.env,a=void 0===r?o():r,s=c.squiggly,l=void 0===s||s;a=e(a);var h,p,u=l?"/~api":"";return u+="/"+n+"/v2",t(a)(l?(void 0===h&&(h=1),(p=window.location.hostname.split(".").slice(0,-1*(1+h)))["prototype"===o()?p.length-1:0].replace(/-staging$/,"").replace(/-testing$/,"")):"api")+u},n.pcoUrl=function(n,i){var c=(void 0===i?{}:i).env,r=void 0===c?o():c;return r=e(r),t(r)(n)}});
|
|
2
2
|
//# sourceMappingURL=url.umd.js.map
|
package/dist/url.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"url.umd.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","inferEnvironment","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","product","
|
|
1
|
+
{"version":3,"file":"url.umd.js","sources":["../index.ts"],"sourcesContent":["export type Environment =\n | \"production\"\n | \"staging\"\n | \"testing\"\n | \"development\"\n | \"test\"\n | \"prototype\"\n\nexport type Product =\n | \"api\"\n | \"accounts\"\n | \"calendar\"\n | \"check-ins\"\n | \"giving\"\n | \"groups\"\n | \"home\"\n | \"login\"\n | \"people\"\n | \"publishing\"\n | \"registrations\"\n | \"services\"\n\nconst legacy = (env: Environment) => (productName: Product) => {\n if (!(env && productName)) return\n\n const getCurrentProtocol = () => {\n if (typeof location !== 'undefined' && location && location.protocol) {\n return location.protocol === 'https:' ? 'https' : 'http'\n }\n return 'http'\n }\n\n switch (env) {\n case \"production\":\n return `https://${productName}.${domain()}`\n case \"staging\":\n return `https://${productName}-staging.${domain()}`\n case \"testing\":\n return `https://${productName}-testing.${domain()}`\n case \"development\": {\n let tld = \"test\"\n\n try {\n tld = location.hostname.match(/\\pco\\.(\\w+)$/)[1]\n } catch (error) {\n // don't show warning in Topbar's local dev env\n if (location.hostname !== \"localhost\") {\n console.error(`${location.hostname} is not a supported dev TLD`)\n }\n }\n\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.${tld}`\n }\n case \"prototype\":\n return `https://${prototypeEnv()}.${productName}.planningcenter.ninja`\n case \"test\": {\n const prefix = worktreeName(productName)\n return `${getCurrentProtocol()}://${prefix ? `${prefix}.` : ''}${productName}.pco.test`\n }\n default:\n return `http://${productName}.${domain()}`\n }\n}\n\nexport default legacy\n\nexport function pcoUrl(\n product: Product,\n { env = inferEnvironment() }: { env?: Environment } = {},\n) {\n env = resolveEnvironment(env)\n return legacy(env)(product)\n}\n\nexport function pcoApiUrl(\n product: Product,\n {\n env = inferEnvironment(),\n squiggly = true,\n }: { env?: Environment; squiggly?: boolean } = {},\n) {\n env = resolveEnvironment(env)\n let path = squiggly ? \"/~api\" : \"\"\n path += `/${product}/v2`\n\n return legacy(env)(squiggly ? inferProduct() : \"api\") + path\n}\n\nconst resolveEnvironment = (env: Environment): Environment => {\n if (env === \"staging\" && inferEnvironment() === \"testing\") return \"testing\"\n return env\n}\n\nexport const inferEnvironment = () => {\n const origin = window.location.origin\n\n if (origin.endsWith(\"-testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.planningcenteronline.com\")) return \"testing\"\n if (origin.endsWith(\".testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"/testing.churchcenter.com\")) return \"testing\"\n if (origin.endsWith(\"-staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.planningcenteronline.com\")) return \"staging\"\n if (origin.endsWith(\".staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\"/staging.churchcenter.com\")) return \"staging\"\n if (origin.endsWith(\".planningcenteronline.com\")) return \"production\"\n if (origin.endsWith(\".churchcenter.com\")) return \"production\"\n if (origin.endsWith(\"/churchcenter.com\")) return \"production\"\n if (origin.endsWith(\".planningcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\".churchcenter.ninja\")) return \"prototype\"\n if (origin.endsWith(\"pco.codes\")) return \"development\"\n if (origin.endsWith(\"pco.dev\")) return \"development\"\n if (origin.endsWith(\"pco.test\")) return \"development\"\n if (origin.endsWith(\"churchcenter.test\")) return \"development\"\n\n return \"production\"\n}\n/**\n * If the hostname is a Protonova URL, get the env from the subdomain. Defaults to main.\n * Example: my-cool-change.accounts.planningcenter.ninja -> my-cool-change\n * @returns {string}\n */\nconst prototypeEnv = () => {\n const result = location?.hostname?.match(\n /(?:www\\.)?(.+)\\..+\\.planningcenter\\.ninja/,\n )\n\n if (result && result[1] !== \"localhost\") {\n return result[1]\n }\n\n return \"main\"\n}\n\nconst worktreeName = (productName: string) => {\n const match = location?.hostname?.match(/^(.+?)\\.(.+?)\\.pco\\.\\w+$/)\n if (match && match[2] === productName) return match[1]\n return null\n}\n\nconst domain = () => {\n const result = location.hostname.match(/planningcenter(online)?.com/)\n\n if (result === null) {\n return \"planningcenteronline.com\"\n } else {\n return result[0]\n }\n}\n\nconst extractSubdomainsFrom = (host, tldLength = 1) => {\n return host.split(\".\").slice(0, (1 + tldLength) * -1)\n}\n\nconst inferProduct = () => {\n const subdomains = extractSubdomainsFrom(window.location.hostname)\n\n return subdomains[\n inferEnvironment() === \"prototype\" ? subdomains.length - 1 : 0\n ].replace(/-staging$/, \"\").replace(/-testing$/, \"\")\n}\n"],"names":["legacy","env","productName","getCurrentProtocol","location","protocol","domain","tld","hostname","match","error","console","prefix","worktreeName","prototypeEnv","resolveEnvironment","inferEnvironment","origin","window","endsWith","_location","_location$hostname","result","_location2","_location2$hostname","pcoApiUrl","product","_ref2","_temp2","squiggly","_ref2$squiggly","tldLength","subdomains","path","split","slice","length","replace","_temp","_ref$env"],"mappings":"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"}
|