@donotdev/core 0.0.11 → 0.0.13
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/functions/index.js +1 -1
- package/i18n/locales/eager/dndev_ar.json +122 -106
- package/i18n/locales/eager/dndev_de.json +122 -106
- package/i18n/locales/eager/dndev_en.json +122 -106
- package/i18n/locales/eager/dndev_es.json +122 -106
- package/i18n/locales/eager/dndev_fr.json +122 -106
- package/i18n/locales/eager/dndev_it.json +122 -106
- package/i18n/locales/eager/dndev_ja.json +122 -106
- package/i18n/locales/eager/dndev_ko.json +122 -106
- package/i18n/locales/lazy/auth_ar.json +121 -0
- package/i18n/locales/lazy/auth_de.json +121 -0
- package/i18n/locales/lazy/auth_en.json +121 -0
- package/i18n/locales/lazy/auth_es.json +121 -0
- package/i18n/locales/lazy/auth_fr.json +121 -0
- package/i18n/locales/lazy/auth_it.json +121 -0
- package/i18n/locales/lazy/auth_ja.json +121 -0
- package/i18n/locales/lazy/auth_ko.json +121 -0
- package/i18n/locales/lazy/billing_ar.json +12 -2
- package/i18n/locales/lazy/billing_de.json +12 -2
- package/i18n/locales/lazy/billing_en.json +12 -2
- package/i18n/locales/lazy/billing_es.json +12 -2
- package/i18n/locales/lazy/billing_fr.json +12 -2
- package/i18n/locales/lazy/billing_it.json +12 -2
- package/i18n/locales/lazy/billing_ja.json +12 -2
- package/i18n/locales/lazy/billing_ko.json +12 -2
- package/i18n/locales/lazy/oauth_ar.json +11 -0
- package/i18n/locales/lazy/oauth_de.json +11 -0
- package/i18n/locales/lazy/oauth_en.json +11 -0
- package/i18n/locales/lazy/oauth_es.json +11 -0
- package/i18n/locales/lazy/oauth_fr.json +11 -0
- package/i18n/locales/lazy/oauth_it.json +11 -0
- package/i18n/locales/lazy/oauth_ja.json +11 -0
- package/i18n/locales/lazy/oauth_ko.json +11 -0
- package/index.d.ts +1140 -107
- package/index.js +41 -41
- package/next/index.d.ts +10 -1
- package/next/index.js +20 -20
- package/package.json +2 -2
- package/server.d.ts +944 -580
- package/server.js +1 -575
- package/vite/index.d.ts +10 -1
- package/vite/index.js +23 -16
package/functions/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Y=(l,e)=>()=>(l&&(e=l(l=0)),e);function V(l,e=null){let t=x[l];if(!t)throw new Error(`Unknown pattern type: ${l}`);return e&&t.framework?{...t,framework:t.framework.map(r=>`${e}/${r}`)}:t}function K(l){return q[l]||q.base}var O,x,q,Z=Y(()=>{"use strict";y();O={SOURCE_ROOT:"packages/core/i18n",SOURCE_LOCALES:"packages/core/i18n/locales",SOURCE_EAGER:"packages/core/i18n/locales/eager",SOURCE_LAZY:"packages/core/i18n/locales/lazy",PUBLISHED_ROOT:"i18n",PUBLISHED_LOCALES:"i18n/locales",PUBLISHED_EAGER:"i18n/locales/eager",PUBLISHED_LAZY:"i18n/locales/lazy"},x={routes:{consumer:["src/**/*Page.tsx","src/pages/**/*Page.tsx"],exclude:["**/node_modules/**","**/dist/**","**/build/**","**/*.test.tsx","**/*.stories.tsx"],extensions:[".tsx"]},css:{consumer:["src/**/*.css"],themes:["src/**/*.css"],extensions:[".css",".scss",".sass"],framework:["packages/ui/src/**/*.css","packages/core/components/src/**/*.css","packages/core/templates/src/**/*.css"]},i18n:{eager:["src/locales/*_*.json"],lazy:["src/**/locales/*_*.json","!src/locales/*_*.json"],framework:{eager:[`${O.SOURCE_EAGER}/*_*.json`],lazy:[`${O.SOURCE_LAZY}/*_*.json`]},extensions:[".json"]},assets:{consumer:["public/**/*"],fallback:["manifest.json"],modern:["logo.svg","favicon.svg","apple-touch-icon.png","android-chrome-192x192.png","android-chrome-512x512.png"],patterns:["favicon.svg","favicon.ico","favicon-*.png","logo.svg","logo.png","logo.webp","logo.avif","apple-touch-icon*.png","android-chrome-*.png","manifest.json"],fonts:["fonts/**/*.woff2","fonts/**/*.woff","fonts/**/*.ttf"],framework:["packages/ui/assets/**/*"]},pwa:{consumer:["public/manifest.json","public/service-worker.js","public/sw.js","public/icon-192x192.png","public/icon-512x512.png","public/favicon.ico","public/favicon.svg","public/apple-touch-icon.png","public/logo.svg"],exclude:["**/node_modules/**","**/dist/**","**/build/**"],extensions:[".json",".js",".png",".svg",".ico"],framework:["packages/ui/assets/**/*"]},globalIgnore:["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/coverage/**","**/test/**"]},q={base:{absolute:!0,onlyFiles:!0,ignore:x.globalIgnore},css:{absolute:!0,onlyFiles:!0,ignore:[...x.globalIgnore,"**/*.test.css"]},routes:{absolute:!0,onlyFiles:!0,ignore:[...x.globalIgnore,"**/*.test.tsx","**/*.stories.tsx"]},i18n:{absolute:!0,onlyFiles:!0,ignore:x.globalIgnore},assets:{absolute:!0,onlyFiles:!0,ignore:x.globalIgnore}}});import{createRequire as ce}from"node:module";import{fileURLToPath as le}from"node:url";import{dirname as ue,resolve as Re}from"node:path";import{Buffer as b}from"node:buffer";import v from"node:process";var pe,E,A,y=Y(()=>{"use strict";pe=ce(import.meta.url),E=le(import.meta.url),A=ue(E);typeof globalThis<"u"&&(globalThis.require=pe,globalThis.__filename=E,globalThis.__dirname=A,globalThis.Buffer=b,globalThis.process=v,typeof global>"u"&&(globalThis.global=globalThis))});y();y();y();import{createRequire as fe}from"node:module";import{resolve as W,join as k,dirname as S,relative as X,normalize as de,sep as Q,extname as he}from"node:path";import{fileURLToPath as me}from"node:url";import*as u from"node:fs";Z();import ge from"fast-glob";var F={getGlobOptionsFor:K||void 0,SCAN_PATTERNS:x||void 0,getPatternsFor:V||void 0,I18N_PATHS:O||void 0},m={error:(l,e)=>{},warn:(l,e)=>{},info:l=>{}};function J(l,e){return l().catch(t=>{throw new Error(`${e}: ${t instanceof Error?t.message:String(t)}`)})}var ee={CLI:"packages/cli",COMPONENTS:"packages/core/components",CONFIG:"packages/core/config",CORE:"packages/core",CRUD:"packages/core/crud",FEATURES:"packages/features",HOOKS:"packages/core/hooks",I18N:"packages/core/i18n",SCHEMAS:"packages/core/schemas",STORES:"packages/core/stores",TEMPLATES:"packages/templates",TOOLING:"packages/tooling",TYPES:"packages/core/types",UI:"packages/ui",UTILS:"packages/core/utils",AUTH:"packages/features/auth",BILLING:"packages/features/billing",OAUTH:"packages/features/oauth",FIREBASE:"packages/providers/firebase",FUNCTIONS:"packages/functions"},L=class l{static _instance=null;options;_repoRoot;_appRoot=null;static getInstance(e={}){return l._instance||(l._instance=new l(e)),l._instance}static _reset(){l._instance=null}constructor(e={}){if(l._instance)return l._instance;this.options={maxLevels:e.maxLevels??10,customMarkers:e.customMarkers||[],cache:e.cache??!1,debug:e.debug??!1};try{let t=v.cwd();if(!t)throw new Error("PathResolver: process.cwd() returned undefined. This should never happen.");this._repoRoot=this._findRepoRoot(t)}catch(t){throw new Error(`PathResolver constructor failed: ${t instanceof Error?t.message:String(t)}. cwd: ${v.cwd()}`)}this._appRoot=null,l._instance=this}normalizePath(e){if(!e)return"";try{return de(e).split(Q).join("/")}catch{return String(e).split(Q).join("/")}}getRelativePath(e){let t=this.getAppRoot(),r=X(t,e);return this.normalizePath(r)}getBasename(e){if(!e)return"";let r=this.normalizePath(e).split("/");return r[r.length-1]||""}getDirname(e){return e?this.normalizePath(S(e)):""}resolvePackage(e,t=null){try{let r=t||this.getAppRoot(),n=fe(k(r,"package.json")).resolve(e);return this.normalizePath(n)}catch{return null}}resolveFrameworkPackage(e,t=null){let r=this.resolvePackage(`${e}/package.json`,t);if(r)return this.getDirname(r);if(this.isMonorepo()&&e.startsWith("@donotdev/")){let s=e.replace("@donotdev/",""),o=this.resolveRepoPath(`packages/${s}`);if(this.pathExists(o))return o;if(["auth","billing","crud","oauth"].includes(s)){let i=this.resolveRepoPath(`packages/features/${s}`);if(this.pathExists(i))return i}if(s==="firebase"){let i=this.resolveRepoPath(`packages/providers/${s}`);if(this.pathExists(i))return i}}let a=this.resolveAppPath(`node_modules/${e}`);if(this.pathExists(a))return a;let n=this.resolveRepoPath(`node_modules/${e}`);return this.pathExists(n)?n:null}resolvePackageAsset(e,t=null){return this.resolvePackage(e,t)}resolveAppPath(e){let t=this.getAppRoot(),r=W(t,e);return this.normalizePath(r)}resolveRepoPath(e){let t=this.getRepoRoot(),r=this.normalizePath(e),a=W(t,r);return this.normalizePath(a)}resolvePath(e,t){let r=this.normalizePath(t),a=this.normalizePath(e),n=W(r,a);return this.normalizePath(n)}createImportPath(e){return"./"+this.getRelativePath(e)}getFileInfo(e){try{let t=u.statSync(e);return{absolutePath:this.normalizePath(e),relativePath:this.getRelativePath(e),importPath:this.createImportPath(e),size:t.size,isFile:t.isFile(),isDirectory:t.isDirectory()}}catch{return null}}_detectFormat(e,t){return t&&t!=="auto"?t:he(e).toLowerCase()===".json"?"json":"text"}async read(e,t={}){let{format:r="auto",encoding:a="utf8"}=t,n=this._detectFormat(e,r);try{if(n==="buffer")return await u.promises.readFile(e);let s=await u.promises.readFile(e,a),o=this.stripBom(s);return n==="json"?JSON.parse(o):o}catch(s){return this.options.debug&&m.warn(`Failed to read file: ${e}`,s),null}}readSync(e,t={}){let{format:r="auto",encoding:a="utf8"}=t,n=this._detectFormat(e,r);try{if(n==="buffer")return u.readFileSync(e);let s=u.readFileSync(e,a),o=this.stripBom(s);return n==="json"?JSON.parse(o):o}catch(s){return this.options.debug&&m.warn(`Failed to read file: ${e}`,s),null}}async write(e,t,r={}){let{format:a="auto",overwrite:n=!1,dryRun:s=!1,verbose:o=!1}=r,i=this.normalizePath(e),f=this.normalizePath(S(i)),c=this.pathExists(i);if(c&&!n)return o&&m.info(`Skipping existing file: ${i}`),!1;if(s)return m.info(`[DRY RUN] Would write file: ${i}`),!0;try{await u.promises.mkdir(f,{recursive:!0})}catch(h){if(h?.code!=="EEXIST")throw h}let d=this._detectFormat(e,a),g;b.isBuffer(t)?g=t:d==="json"&&typeof t=="object"?g=JSON.stringify(t,null,2):g=String(t);try{return await J(async()=>(b.isBuffer(g)?await u.promises.writeFile(i,g):await u.promises.writeFile(i,g,"utf8"),o&&m.info(`${c?"Updated":"Created"} file: ${i}`),!0),`Failed to write file: ${i}`)}catch{return!1}}writeSync(e,t,r={}){let{format:a="auto",overwrite:n=!1,dryRun:s=!1,verbose:o=!1}=r,i=this.normalizePath(e),f=this.normalizePath(S(i)),c=this.pathExists(i);if(c&&!n)return o&&m.info(`Skipping existing file: ${i}`),!1;if(s)return m.info(`[DRY RUN] Would write file: ${i}`),!0;try{u.mkdirSync(f,{recursive:!0})}catch(h){if(h?.code!=="EEXIST")throw h}let d=this._detectFormat(e,a),g;b.isBuffer(t)?g=t:d==="json"&&typeof t=="object"?g=JSON.stringify(t,null,2):g=String(t);try{return b.isBuffer(g)?u.writeFileSync(i,g):u.writeFileSync(i,g,"utf8"),o&&m.info(`${c?"Updated":"Created"} file: ${i}`),!0}catch(h){throw new Error(`Failed to write file: ${i}: ${h instanceof Error?h.message:String(h)}`)}}async copy(e,t,r={}){let{overwrite:a=!1,dryRun:n=!1,verbose:s=!1}=r,o=this.normalizePath(t),i=this.pathExists(o);if(i&&!a)return s&&m.info(`Skipping existing file: ${o}`),!1;if(n)return m.info(`[DRY RUN] Would copy file: ${o}`),!0;let f=this.normalizePath(S(o));try{await u.promises.mkdir(f,{recursive:!0})}catch(c){if(c?.code!=="EEXIST")throw c}try{return await J(async()=>(await u.promises.copyFile(e,o),s&&m.info(`${i?"Updated":"Created"} file: ${o}`),!0),`Failed to copy file from ${e} to ${o}`)}catch{return!1}}copySync(e,t,r={}){let{overwrite:a=!1,dryRun:n=!1,verbose:s=!1}=r,o=this.normalizePath(t),i=this.pathExists(o);if(i&&!a)return s&&m.info(`Skipping existing file: ${o}`),!1;if(n)return m.info(`[DRY RUN] Would copy file: ${o}`),!0;let f=this.normalizePath(S(o));try{u.mkdirSync(f,{recursive:!0})}catch(c){if(c?.code!=="EEXIST")throw c}try{return u.copyFileSync(e,o),s&&m.info(`${i?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,t=!1){try{return u.existsSync(e)}catch(r){return t||m.error(`Error checking path existence: ${e}`,r),!1}}mkdir(e){try{let t=e.startsWith("/")||e.match(/^[A-Z]:/)?this.normalizePath(e):this.resolveAppPath(e);return u.existsSync(t)||u.mkdirSync(t,{recursive:!0}),!0}catch{return!1}}readdirSync(e,t){try{return u.readdirSync(e,t)}catch(r){return this.options.debug&&m.warn(`Failed to read directory: ${e}`,r),t&&typeof t=="object"&&"withFileTypes"in t&&t.withFileTypes?[]:[]}}statSync(e){try{return u.statSync(e)}catch(t){return this.options.debug&&m.warn(`Failed to stat file: ${e}`,t),null}}lstatSync(e){try{return u.lstatSync(e)}catch(t){return this.options.debug&&m.warn(`Failed to lstat file: ${e}`,t),null}}async ensureDir(e){try{await u.promises.mkdir(e,{recursive:!0})}catch(t){if(t?.code!=="EEXIST")throw t}}ensureDirSync(e){try{u.mkdirSync(e,{recursive:!0})}catch(t){if(t?.code!=="EEXIST")throw t}}async remove(e){await u.promises.rm(e,{recursive:!0,force:!0})}removeSync(e){u.rmSync(e,{recursive:!0,force:!0})}async readdir(e,t){return u.promises.readdir(e,t)}stripBom(e){return e.charCodeAt(0)===65279?e.slice(1):e}getRepoRoot(){return this._repoRoot||v.cwd()}getAppRoot(){return this._appRoot?this._appRoot:this._repoRoot}setAppRoot(e){if(!e)throw new Error("PathResolver.setAppRoot: root cannot be undefined or null");this._appRoot=this.normalizePath(e)}isMonorepo(){let e=k(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let t=this.normalizePath(W(e)),r=this.getAppRoot(),a=X(r,t),n=this.normalizePath(a);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,t,r={}){let a=this.normalizePath(k(e,t)),n=this.getAppRoot(),s=this.normalizePath(n),o=a.startsWith(s)?a.slice(s.length+1):a,i={absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:n,ignore:F.SCAN_PATTERNS?.globalIgnore||["**/node_modules/**","**/dist/**","**/build/**","**/.git/**"]};return await this._globWithNormalization([o],{...i,...r})}clearCache(){}async _resolveFrameworkI18nPattern(e){let t=F.I18N_PATHS;if(!t)return null;let r=e.replace(t.SOURCE_ROOT+"/",""),a=this.resolveFrameworkPackage("@donotdev/core");if(!a)return null;let n=this.normalizePath(k(a,t.PUBLISHED_ROOT,r)),s=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(s),n}async _globWithNormalization(e,t){return(await ge(e,t)).map(a=>{let n=typeof a=="string"?a:a.path;return this.normalizePath(n)})}async resolveFiles(e,t="css"){if(!e||typeof e!="object")return{frameworkFiles:[],consumerFiles:[]};if(t==="i18n")return{frameworkFiles:[],consumerFiles:[]};if(Array.isArray(e.framework)||(e.framework=[]),!Array.isArray(e.consumer))return{frameworkFiles:[],consumerFiles:[]};let r=[...e.framework,...e.consumer];for(let c of r)if(typeof c!="string"||c.trim()==="")return{frameworkFiles:[],consumerFiles:[]};let a=this.getAppRoot(),n=F.getGlobOptionsFor?F.getGlobOptionsFor(t):{ignore:["**/node_modules/**","**/dist/**","**/build/**"]},s=this.normalizePath(a),o=e.framework.map(c=>{let d=this.normalizePath(c);return d.startsWith(s)?d.slice(s.length+1):d}),i=e.consumer.map(c=>{let d=this.normalizePath(c);return d.startsWith(s)?d.slice(s.length+1):d}),f={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:a};try{let c=o.length>0?await this._globWithNormalization(o,f):[],d=await this._globWithNormalization(i,f);return{frameworkFiles:c,consumerFiles:d}}catch{return this.options.debug,{frameworkFiles:[],consumerFiles:[]}}}async resolvePatterns(e){if(!F.getPatternsFor)return{framework:[],consumer:[],all:[]};let t=this.getAppRoot(),r=this.getRepoRoot();if(e==="i18n"&&(!t||t===r))throw new Error(`Cannot resolve i18n patterns: appRoot not set (appRoot: ${t}, repoRoot: ${r}). Ensure configResolved hook has run before discovery.`);let a=F.getPatternsFor(e),n=this.isMonorepo();if(e==="i18n"){let i=a,f={eager:i.eager.map(c=>c.startsWith("!")?"!"+this.resolveAppPath(c.slice(1)):this.resolveAppPath(c)),lazy:i.lazy.map(c=>c.startsWith("!")?"!"+this.resolveAppPath(c.slice(1)):this.resolveAppPath(c)),framework:{eager:n?(i.framework?.eager||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):await Promise.all((i.framework?.eager||[]).map(c=>this._resolveFrameworkI18nPattern(c))).then(c=>c.filter(Boolean)),lazy:n?(i.framework?.lazy||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):await Promise.all((i.framework?.lazy||[]).map(c=>this._resolveFrameworkI18nPattern(c))).then(c=>c.filter(Boolean))},all:[]};return f.all=[...f.eager,...f.lazy,...f.framework.eager,...f.framework.lazy],f}let s=a,o={framework:n?(s.framework||[]).map(i=>this.resolveRepoPath(i)).filter(Boolean):[],consumer:(s.consumer||[]).map(i=>this.resolveAppPath(i)),all:[]};return o.all=[...o.consumer,...o.framework],o}getEmptyModulePath(e=!1){if(e)return"@donotdev/core/empty";let t=this.resolvePackage("@donotdev/core/empty");if(t)return t;let r=S(me(import.meta.url));return this.normalizePath(k(r,"../empty.js"))}_findRepoRoot(e){let t=this.normalizePath(e),r=0,a=this.options.maxLevels;for(;r<a;){let n=this.normalizePath(k(t,ee.TOOLING)),s=this.normalizePath(k(t,ee.CORE));if(this.pathExists(n)&&this.pathExists(s))return t;let o=k(t,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(t);let i=this.normalizePath(k(t,"package.json"));if(this.pathExists(i)&&this.normalizePath(S(t))===t)return t;let f=this.normalizePath(S(t));if(f===t)break;t=f,r++}return this.normalizePath(e)}};y();import U from"node:fs";import P from"node:path";import{fileURLToPath as ve}from"node:url";var ye=ve(import.meta.url),We=P.dirname(ye);function te(){let l=v.cwd(),e=10;for(let t=0;t<e;t++){let r=P.join(l,"package.json");if(U.existsSync(r))try{let n=JSON.parse(U.readFileSync(r,"utf8"));if(n.workspaces&&Array.isArray(n.workspaces)&&n.workspaces.some(f=>f==="packages/**"||f.startsWith("packages/"))&&(U.existsSync(P.join(l,"packages","core"))||U.existsSync(P.join(l,"packages","functions"))))return{type:"dndev",root:l}}catch{}let a=P.dirname(l);if(a===l)break;l=a}return{type:"npm",root:v.cwd()}}function be(l){return l.type==="dndev"?l.root:null}function re(l){let e={};if(l.type==="dndev"){let t=be(l);t&&(e["@donotdev/types"]=P.join(t,"packages","core","types","src"),e["@donotdev/functions"]=P.join(t,"packages","functions","src"),e["@donotdev/utils"]=P.join(t,"packages","core","utils","src"),e["@donotdev/schemas"]=P.join(t,"packages","core","schemas","src"),e["@donotdev/core"]=P.join(t,"packages","core"))}return e}function se(l={}){let{entry:e="src/index.ts",outDir:t="lib",minify:r=!1,sourcemap:a=!0,platform:n="firebase",workspace:s,bundleWorkspaceDeps:o=!1,importFramework:i=!1,external:f=!1,...c}=l,d=L.getInstance(),g=re(s),h={entryPoints:[e],bundle:!0,platform:"node",target:"node20",format:"esm",outdir:t,outExtension:{".js":".js"},minify:r,sourcemap:a,metafile:!0,logLevel:"info",loader:{".ts":"ts",".tsx":"tsx",".css":"empty"},keepNames:!0,treeShaking:!0,...c};o&&Object.keys(g).length>0&&(h.alias=Object.fromEntries(Object.entries(g).map(([w,p])=>[w,d.normalizePath(p)]))),h.mainFields=["module","main"],h.conditions=["import","module","node"];let ne=["fs","path","crypto","util","stream","events","buffer","url","querystring","http","https","zlib","os","child_process","assert","constants","domain","punycode","string_decoder","timers","tty","vm","worker_threads","perf_hooks","async_hooks"],B=[];if(o)try{let w=s?.root||v.cwd(),p=v.cwd(),R=10;for(let z=0;z<R;z++){let G=d.normalizePath(`${p}/package.json`);if(d.pathExists(G)){let M=d.readSync(G,{format:"json"});if(M&&Array.isArray(M.workspaces)){w=d.normalizePath(p);for(let _ of M.workspaces)_==="apps/*"||_==="functions"||!_.includes("*")&&!_.includes("/")&&B.push(_);break}}let H=d.getDirname(p);if(H===p)break;p=H}}catch{}let ie={name:"external-node-modules",setup(w){w.onResolve({filter:/.*/},p=>{if(p.kind==="entry-point")return null;if(p.path.match(/@donotdev\/functions\/.+/)&&o&&s?.type==="dndev"){let R=p.path.replace("@donotdev/functions/","");return{path:d.normalizePath(`${s.root}/packages/functions/src/${R}/index.ts`)}}if(p.path==="firebase-admin"||p.path.startsWith("firebase-admin/")||p.path==="firebase-functions"||p.path.startsWith("firebase-functions/"))return{path:p.path,external:!0};if(p.path.match(/@donotdev\/core\/.+/)&&o&&s?.type==="dndev"){let R=p.path.replace("@donotdev/core/","");return{path:d.normalizePath(`${s.root}/packages/core/${R}.ts`)}}if(p.path.startsWith("@donotdev/")||p.path==="valibot"||p.path.startsWith("valibot/"))return null;if(B.length>0){let R=p.path.split("/")[0];if(B.includes(R))return null}return p.path.startsWith(".")||p.path.startsWith("/")?null:{path:p.path,external:!0}})}};if(h.external=[...ne,"firebase-admin","firebase-functions"],h.plugins=[ie,...h.plugins||[]],h.define={"process.env.NODE_ENV":JSON.stringify(v.env.NODE_ENV||"production"),...h.define||{}},i&&s.type==="dndev"){let w=s.root,p=d.normalizePath(`${w}/functions/lib`);h.alias={...h.alias,"@donotdev/functions":p}}return n==="framework"&&(h.entryPoints={"firebase/index":"src/firebase/index.ts","vercel/api/index":"src/vercel/api/index.ts","shared/index":"src/shared/index.ts"}),h}function oe(l={}){let{entry:e="src/index.ts",outDir:t="lib",minify:r=!1,sourcemap:a=!0,platform:n="firebase",...s}=l,o=te();return se({entry:e,outDir:t,minify:r,sourcemap:a,platform:n,workspace:o,...s})}function Ve(l={}){return oe({...l,platform:"framework",bundleWorkspaceDeps:!0})}function Ke(l={}){return oe({...l,platform:"firebase",bundleWorkspaceDeps:!0,importFramework:!0})}export{Ke as createAppFunctionsConfig,oe as createFunctionsEsbuildConfig,Ve as createRootFunctionsConfig};
|
|
1
|
+
var Y=(l,e)=>()=>(l&&(e=l(l=0)),e);function V(l,e=null){let t=S[l];if(!t)throw new Error(`Unknown pattern type: ${l}`);return e&&t.framework?{...t,framework:t.framework.map(r=>`${e}/${r}`)}:t}function Z(l){return q[l]||q.base}var C,S,q,K=Y(()=>{"use strict";b();C={SOURCE_ROOT:"packages/core/i18n",SOURCE_LOCALES:"packages/core/i18n/locales",SOURCE_EAGER:"packages/core/i18n/locales/eager",SOURCE_LAZY:"packages/core/i18n/locales/lazy",PUBLISHED_ROOT:"i18n",PUBLISHED_LOCALES:"i18n/locales",PUBLISHED_EAGER:"i18n/locales/eager",PUBLISHED_LAZY:"i18n/locales/lazy"},S={routes:{consumer:["src/**/*Page.tsx","src/pages/**/*Page.tsx"],exclude:["**/node_modules/**","**/dist/**","**/build/**","**/*.test.tsx","**/*.stories.tsx"],extensions:[".tsx"]},css:{consumer:["src/**/*.css"],themes:["src/**/*.css"],extensions:[".css",".scss",".sass"],framework:["packages/ui/src/**/*.css","packages/core/components/src/**/*.css","packages/core/templates/src/**/*.css"]},i18n:{eager:["src/locales/*_*.json"],lazy:["src/**/locales/*_*.json","!src/locales/*_*.json"],framework:{eager:[`${C.SOURCE_EAGER}/*_*.json`],lazy:[`${C.SOURCE_LAZY}/*_*.json`]},extensions:[".json"]},assets:{consumer:["public/**/*"],fallback:["manifest.json"],modern:["logo.svg","favicon.svg","apple-touch-icon.png","android-chrome-192x192.png","android-chrome-512x512.png"],patterns:["favicon.svg","favicon.ico","favicon-*.png","logo.svg","logo.png","logo.webp","logo.avif","apple-touch-icon*.png","android-chrome-*.png","manifest.json"],fonts:["fonts/**/*.woff2","fonts/**/*.woff","fonts/**/*.ttf"],framework:["packages/ui/assets/**/*"]},pwa:{consumer:["public/manifest.json","public/service-worker.js","public/sw.js","public/icon-192x192.png","public/icon-512x512.png","public/favicon.ico","public/favicon.svg","public/apple-touch-icon.png","public/logo.svg"],exclude:["**/node_modules/**","**/dist/**","**/build/**"],extensions:[".json",".js",".png",".svg",".ico"],framework:["packages/ui/assets/**/*"]},globalIgnore:["**/node_modules/**","**/dist/**","**/build/**","**/.git/**","**/coverage/**","**/test/**"]},q={base:{absolute:!0,onlyFiles:!0,ignore:S.globalIgnore},css:{absolute:!0,onlyFiles:!0,ignore:[...S.globalIgnore,"**/*.test.css"]},routes:{absolute:!0,onlyFiles:!0,ignore:[...S.globalIgnore,"**/*.test.tsx","**/*.stories.tsx"]},i18n:{absolute:!0,onlyFiles:!0,ignore:S.globalIgnore},assets:{absolute:!0,onlyFiles:!0,ignore:S.globalIgnore}}});import{createRequire as ce}from"node:module";import{fileURLToPath as le}from"node:url";import{dirname as ue,resolve as Re}from"node:path";import{Buffer as P}from"node:buffer";import v from"node:process";var pe,F,O,b=Y(()=>{"use strict";pe=ce(import.meta.url),F=le(import.meta.url),O=ue(F);typeof globalThis<"u"&&(globalThis.require=pe,globalThis.__filename=F,globalThis.__dirname=O,globalThis.Buffer=P,globalThis.process=v,typeof global>"u"&&(globalThis.global=globalThis))});b();b();b();import{createRequire as fe}from"node:module";import{resolve as U,join as x,dirname as R,relative as X,normalize as de,sep as Q,extname as he}from"node:path";import{fileURLToPath as me}from"node:url";import*as u from"node:fs";K();import ge from"fast-glob";var _={getGlobOptionsFor:Z||void 0,SCAN_PATTERNS:S||void 0,getPatternsFor:V||void 0,I18N_PATHS:C||void 0},m={error:(l,e)=>{},warn:(l,e)=>{},info:l=>{}};function J(l,e){return l().catch(t=>{throw new Error(`${e}: ${t instanceof Error?t.message:String(t)}`)})}var ee={CLI:"packages/cli",COMPONENTS:"packages/core/components",CONFIG:"packages/core/config",CORE:"packages/core",CRUD:"packages/core/crud",FEATURES:"packages/features",HOOKS:"packages/core/hooks",I18N:"packages/core/i18n",SCHEMAS:"packages/core/schemas",STORES:"packages/core/stores",TEMPLATES:"packages/templates",TOOLING:"packages/tooling",TYPES:"packages/core/types",UI:"packages/ui",UTILS:"packages/core/utils",AUTH:"packages/features/auth",BILLING:"packages/features/billing",OAUTH:"packages/features/oauth",FIREBASE:"packages/providers/firebase",FUNCTIONS:"packages/functions"},B=class l{static _instance=null;options;_repoRoot;_appRoot=null;static getInstance(e={}){return l._instance||(l._instance=new l(e)),l._instance}static _reset(){l._instance=null}constructor(e={}){if(l._instance)return l._instance;this.options={maxLevels:e.maxLevels??10,customMarkers:e.customMarkers||[],cache:e.cache??!1,debug:e.debug??!1};try{let t=v.cwd();if(!t)throw new Error("PathResolver: process.cwd() returned undefined. This should never happen.");this._repoRoot=this._findRepoRoot(t)}catch(t){throw new Error(`PathResolver constructor failed: ${t instanceof Error?t.message:String(t)}. cwd: ${v.cwd()}`)}this._appRoot=null,l._instance=this}normalizePath(e){if(!e)return"";try{return de(e).split(Q).join("/")}catch{return String(e).split(Q).join("/")}}getRelativePath(e){let t=this.getAppRoot(),r=X(t,e);return this.normalizePath(r)}getBasename(e){if(!e)return"";let r=this.normalizePath(e).split("/");return r[r.length-1]||""}getDirname(e){return e?this.normalizePath(R(e)):""}resolvePackage(e,t=null){try{let r=t||this.getAppRoot(),n=fe(x(r,"package.json")).resolve(e);return this.normalizePath(n)}catch{return null}}resolveFrameworkPackage(e,t=null){let r=this.resolvePackage(`${e}/package.json`,t);if(r)return this.getDirname(r);if(this.isMonorepo()&&e.startsWith("@donotdev/")){let s=e.replace("@donotdev/",""),o=this.resolveRepoPath(`packages/${s}`);if(this.pathExists(o))return o;if(["auth","billing","crud","oauth"].includes(s)){let i=this.resolveRepoPath(`packages/features/${s}`);if(this.pathExists(i))return i}if(s==="firebase"){let i=this.resolveRepoPath(`packages/providers/${s}`);if(this.pathExists(i))return i}}let a=this.resolveAppPath(`node_modules/${e}`);if(this.pathExists(a))return a;let n=this.resolveRepoPath(`node_modules/${e}`);return this.pathExists(n)?n:null}resolvePackageAsset(e,t=null){return this.resolvePackage(e,t)}resolveAppPath(e){let t=this.getAppRoot(),r=U(t,e);return this.normalizePath(r)}resolveRepoPath(e){let t=this.getRepoRoot(),r=this.normalizePath(e),a=U(t,r);return this.normalizePath(a)}resolvePath(e,t){let r=this.normalizePath(t),a=this.normalizePath(e),n=U(r,a);return this.normalizePath(n)}createImportPath(e){return"./"+this.getRelativePath(e)}getFileInfo(e){try{let t=u.statSync(e);return{absolutePath:this.normalizePath(e),relativePath:this.getRelativePath(e),importPath:this.createImportPath(e),size:t.size,isFile:t.isFile(),isDirectory:t.isDirectory()}}catch{return null}}_detectFormat(e,t){return t&&t!=="auto"?t:he(e).toLowerCase()===".json"?"json":"text"}async read(e,t={}){let{format:r="auto",encoding:a="utf8"}=t,n=this._detectFormat(e,r);try{if(n==="buffer")return await u.promises.readFile(e);let s=await u.promises.readFile(e,a),o=this.stripBom(s);return n==="json"?JSON.parse(o):o}catch(s){return this.options.debug&&m.warn(`Failed to read file: ${e}`,s),null}}readSync(e,t={}){let{format:r="auto",encoding:a="utf8"}=t,n=this._detectFormat(e,r);try{if(n==="buffer")return u.readFileSync(e);let s=u.readFileSync(e,a),o=this.stripBom(s);return n==="json"?JSON.parse(o):o}catch(s){return this.options.debug&&m.warn(`Failed to read file: ${e}`,s),null}}async write(e,t,r={}){let{format:a="auto",overwrite:n=!1,dryRun:s=!1,verbose:o=!1}=r,i=this.normalizePath(e),d=this.normalizePath(R(i)),c=this.pathExists(i);if(c&&!n)return o&&m.info(`Skipping existing file: ${i}`),!1;if(s)return m.info(`[DRY RUN] Would write file: ${i}`),!0;try{await u.promises.mkdir(d,{recursive:!0})}catch(h){if(h?.code!=="EEXIST")throw h}let f=this._detectFormat(e,a),g;P.isBuffer(t)?g=t:f==="json"&&typeof t=="object"?g=JSON.stringify(t,null,2):g=String(t);try{return await J(async()=>(P.isBuffer(g)?await u.promises.writeFile(i,g):await u.promises.writeFile(i,g,"utf8"),o&&m.info(`${c?"Updated":"Created"} file: ${i}`),!0),`Failed to write file: ${i}`)}catch{return!1}}writeSync(e,t,r={}){let{format:a="auto",overwrite:n=!1,dryRun:s=!1,verbose:o=!1}=r,i=this.normalizePath(e),d=this.normalizePath(R(i)),c=this.pathExists(i);if(c&&!n)return o&&m.info(`Skipping existing file: ${i}`),!1;if(s)return m.info(`[DRY RUN] Would write file: ${i}`),!0;try{u.mkdirSync(d,{recursive:!0})}catch(h){if(h?.code!=="EEXIST")throw h}let f=this._detectFormat(e,a),g;P.isBuffer(t)?g=t:f==="json"&&typeof t=="object"?g=JSON.stringify(t,null,2):g=String(t);try{return P.isBuffer(g)?u.writeFileSync(i,g):u.writeFileSync(i,g,"utf8"),o&&m.info(`${c?"Updated":"Created"} file: ${i}`),!0}catch(h){throw new Error(`Failed to write file: ${i}: ${h instanceof Error?h.message:String(h)}`)}}async copy(e,t,r={}){let{overwrite:a=!1,dryRun:n=!1,verbose:s=!1}=r,o=this.normalizePath(t),i=this.pathExists(o);if(i&&!a)return s&&m.info(`Skipping existing file: ${o}`),!1;if(n)return m.info(`[DRY RUN] Would copy file: ${o}`),!0;let d=this.normalizePath(R(o));try{await u.promises.mkdir(d,{recursive:!0})}catch(c){if(c?.code!=="EEXIST")throw c}try{return await J(async()=>(await u.promises.copyFile(e,o),s&&m.info(`${i?"Updated":"Created"} file: ${o}`),!0),`Failed to copy file from ${e} to ${o}`)}catch{return!1}}copySync(e,t,r={}){let{overwrite:a=!1,dryRun:n=!1,verbose:s=!1}=r,o=this.normalizePath(t),i=this.pathExists(o);if(i&&!a)return s&&m.info(`Skipping existing file: ${o}`),!1;if(n)return m.info(`[DRY RUN] Would copy file: ${o}`),!0;let d=this.normalizePath(R(o));try{u.mkdirSync(d,{recursive:!0})}catch(c){if(c?.code!=="EEXIST")throw c}try{return u.copyFileSync(e,o),s&&m.info(`${i?"Updated":"Created"} file: ${o}`),!0}catch{return!1}}pathExists(e,t=!1){try{return u.existsSync(e)}catch(r){return t||m.error(`Error checking path existence: ${e}`,r),!1}}mkdir(e){try{let t=e.startsWith("/")||e.match(/^[A-Z]:/)?this.normalizePath(e):this.resolveAppPath(e);return u.existsSync(t)||u.mkdirSync(t,{recursive:!0}),!0}catch{return!1}}readdirSync(e,t){try{return u.readdirSync(e,t)}catch(r){return this.options.debug&&m.warn(`Failed to read directory: ${e}`,r),t&&typeof t=="object"&&"withFileTypes"in t&&t.withFileTypes?[]:[]}}statSync(e){try{return u.statSync(e)}catch(t){return this.options.debug&&m.warn(`Failed to stat file: ${e}`,t),null}}lstatSync(e){try{return u.lstatSync(e)}catch(t){return this.options.debug&&m.warn(`Failed to lstat file: ${e}`,t),null}}async ensureDir(e){try{await u.promises.mkdir(e,{recursive:!0})}catch(t){if(t?.code!=="EEXIST")throw t}}ensureDirSync(e){try{u.mkdirSync(e,{recursive:!0})}catch(t){if(t?.code!=="EEXIST")throw t}}async remove(e){await u.promises.rm(e,{recursive:!0,force:!0})}removeSync(e){u.rmSync(e,{recursive:!0,force:!0})}async readdir(e,t){return u.promises.readdir(e,t)}stripBom(e){return e.charCodeAt(0)===65279?e.slice(1):e}getRepoRoot(){return this._repoRoot||v.cwd()}getAppRoot(){return this._appRoot?this._appRoot:this._repoRoot}setAppRoot(e){if(!e)throw new Error("PathResolver.setAppRoot: root cannot be undefined or null");this._appRoot=this.normalizePath(e)}isMonorepo(){let e=x(this._repoRoot,"packages");return this.pathExists(e)}isWithinApp(e){let t=this.normalizePath(U(e)),r=this.getAppRoot(),a=X(r,t),n=this.normalizePath(a);return!n.startsWith("../")&&!n.startsWith("/")}async findFiles(e,t,r={}){let a=this.normalizePath(x(e,t)),n=this.getAppRoot(),s=this.normalizePath(n),o=a.startsWith(s)?a.slice(s.length+1):a,i={absolute:!0,onlyFiles:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:n,ignore:_.SCAN_PATTERNS?.globalIgnore||["**/node_modules/**","**/dist/**","**/build/**","**/.git/**"]};return await this._globWithNormalization([o],{...i,...r})}clearCache(){}async _resolveFrameworkI18nPattern(e){let t=_.I18N_PATHS;if(!t)return null;let r=e.replace(t.SOURCE_ROOT+"/",""),a=this.resolveFrameworkPackage("@donotdev/core");if(!a)return null;let n=this.normalizePath(x(a,t.PUBLISHED_ROOT,r)),s=n.replace(/\/[^/]*\*.*$/,"");return this.pathExists(s),n}async _globWithNormalization(e,t){return(await ge(e,t)).map(a=>{let n=typeof a=="string"?a:a.path;return this.normalizePath(n)})}async resolveFiles(e,t="css"){if(!e||typeof e!="object")return{frameworkFiles:[],consumerFiles:[]};if(t==="i18n")return{frameworkFiles:[],consumerFiles:[]};if(Array.isArray(e.framework)||(e.framework=[]),!Array.isArray(e.consumer))return{frameworkFiles:[],consumerFiles:[]};let r=[...e.framework,...e.consumer];for(let c of r)if(typeof c!="string"||c.trim()==="")return{frameworkFiles:[],consumerFiles:[]};let a=this.getAppRoot(),n=_.getGlobOptionsFor?_.getGlobOptionsFor(t):{ignore:["**/node_modules/**","**/dist/**","**/build/**"]},s=this.normalizePath(a),o=e.framework.map(c=>{let f=this.normalizePath(c);return f.startsWith(s)?f.slice(s.length+1):f}),i=e.consumer.map(c=>{let f=this.normalizePath(c);return f.startsWith(s)?f.slice(s.length+1):f}),d={...n,onlyFiles:!0,absolute:!0,braceExpansion:!0,extglob:!0,globstar:!0,cwd:a};try{let c=o.length>0?await this._globWithNormalization(o,d):[],f=await this._globWithNormalization(i,d);return{frameworkFiles:c,consumerFiles:f}}catch{return this.options.debug,{frameworkFiles:[],consumerFiles:[]}}}async resolvePatterns(e){if(!_.getPatternsFor)return{framework:[],consumer:[],all:[]};let t=this.getAppRoot(),r=this.getRepoRoot();if(e==="i18n"&&(!t||t===r))throw new Error(`Cannot resolve i18n patterns: appRoot not set (appRoot: ${t}, repoRoot: ${r}). Ensure configResolved hook has run before discovery.`);let a=_.getPatternsFor(e),n=this.isMonorepo();if(e==="i18n"){let i=a,d={eager:i.eager.map(c=>c.startsWith("!")?"!"+this.resolveAppPath(c.slice(1)):this.resolveAppPath(c)),lazy:i.lazy.map(c=>c.startsWith("!")?"!"+this.resolveAppPath(c.slice(1)):this.resolveAppPath(c)),framework:{eager:n?(i.framework?.eager||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):await Promise.all((i.framework?.eager||[]).map(c=>this._resolveFrameworkI18nPattern(c))).then(c=>c.filter(Boolean)),lazy:n?(i.framework?.lazy||[]).map(c=>this.resolveRepoPath(c)).filter(Boolean):await Promise.all((i.framework?.lazy||[]).map(c=>this._resolveFrameworkI18nPattern(c))).then(c=>c.filter(Boolean))},all:[]};return d.all=[...d.eager,...d.lazy,...d.framework.eager,...d.framework.lazy],d}let s=a,o={framework:n?(s.framework||[]).map(i=>this.resolveRepoPath(i)).filter(Boolean):[],consumer:(s.consumer||[]).map(i=>this.resolveAppPath(i)),all:[]};return o.all=[...o.consumer,...o.framework],o}getEmptyModulePath(e=!1){if(e)return"@donotdev/core/empty";let t=this.resolvePackage("@donotdev/core/empty");if(t)return t;let r=R(me(import.meta.url));return this.normalizePath(x(r,"../empty.js"))}_findRepoRoot(e){let t=this.normalizePath(e),r=0,a=this.options.maxLevels;for(;r<a;){let n=this.normalizePath(x(t,ee.TOOLING)),s=this.normalizePath(x(t,ee.CORE));if(this.pathExists(n)&&this.pathExists(s))return t;let o=x(t,"apps");if(this.pathExists(o)&&this.statSync(o)?.isDirectory())return this.normalizePath(t);let i=this.normalizePath(x(t,"package.json"));if(this.pathExists(i)&&this.normalizePath(R(t))===t)return t;let d=this.normalizePath(R(t));if(d===t)break;t=d,r++}return this.normalizePath(e)}};b();import M from"node:fs";import k from"node:path";import{fileURLToPath as ve}from"node:url";var ye=ve(import.meta.url),We=k.dirname(ye);function te(){let l=v.cwd(),e=10;for(let t=0;t<e;t++){let r=k.join(l,"package.json");if(M.existsSync(r))try{let n=JSON.parse(M.readFileSync(r,"utf8"));if(n.workspaces&&Array.isArray(n.workspaces)&&n.workspaces.some(d=>d==="packages/**"||d.startsWith("packages/"))&&(M.existsSync(k.join(l,"packages","core"))||M.existsSync(k.join(l,"packages","functions"))))return{type:"dndev",root:l}}catch{}let a=k.dirname(l);if(a===l)break;l=a}return{type:"npm",root:v.cwd()}}function be(l){return l.type==="dndev"?l.root:null}function re(l){let e={};if(l.type==="dndev"){let t=be(l);t&&(e["@donotdev/types"]=k.join(t,"packages","core","types","src"),e["@donotdev/functions"]=k.join(t,"packages","functions","src"),e["@donotdev/utils"]=k.join(t,"packages","core","utils","src"),e["@donotdev/schemas"]=k.join(t,"packages","core","schemas","src"),e["@donotdev/core"]=k.join(t,"packages","core"))}return e}function se(l={}){let{entry:e="src/index.ts",outDir:t="lib",minify:r=!1,sourcemap:a=!0,platform:n="firebase",workspace:s,bundleWorkspaceDeps:o=!1,importFramework:i=!1,external:d=!1,...c}=l,f=B.getInstance(),g=re(s),h={entryPoints:[e],bundle:!0,platform:"node",target:"node20",format:"esm",outdir:t,outExtension:{".js":".js"},minify:r,sourcemap:a,metafile:!0,logLevel:"info",loader:{".ts":"ts",".tsx":"tsx",".css":"empty"},keepNames:!0,treeShaking:!0,...c};o&&Object.keys(g).length>0&&(h.alias=Object.fromEntries(Object.entries(g).map(([w,p])=>[w,f.normalizePath(p)]))),h.mainFields=["module","main"],h.conditions=["import","module","node"];let ne=["fs","path","crypto","util","stream","events","buffer","url","querystring","http","https","zlib","os","child_process","assert","constants","domain","punycode","string_decoder","timers","tty","vm","worker_threads","perf_hooks","async_hooks"],G=[];if(o)try{let w=s?.root||v.cwd(),p=v.cwd(),y=10;for(let E=0;E<y;E++){let H=f.normalizePath(`${p}/package.json`);if(f.pathExists(H)){let A=f.readSync(H,{format:"json"});if(A&&Array.isArray(A.workspaces)){w=f.normalizePath(p);for(let z of A.workspaces)z==="apps/*"||z==="functions"||!z.includes("*")&&!z.includes("/")&&G.push(z);break}}let j=f.getDirname(p);if(j===p)break;p=j}}catch{}let ie={name:"external-node-modules",setup(w){w.onResolve({filter:/^firebase($|\/)/},p=>{if(p.path==="firebase-admin"||p.path.startsWith("firebase-admin/")||p.path==="firebase-functions"||p.path.startsWith("firebase-functions/"))return null;let y;if(s?.type==="dndev"&&s.root)y=f.normalizePath(`${s.root}/packages/core/config/functions/firebase-stub.js`);else{let E=import.meta.url,j=new URL(E).pathname.replace(/^\/([A-Z]:)/i,"$1"),A=f.getDirname(j);y=f.normalizePath(`${A}/firebase-stub.js`)}return{path:y}}),w.onResolve({filter:/.*/},p=>{if(p.kind==="entry-point")return null;if(p.path.match(/@donotdev\/functions\/.+/)&&o&&s?.type==="dndev"){let y=p.path.replace("@donotdev/functions/","");return{path:f.normalizePath(`${s.root}/packages/functions/src/${y}/index.ts`)}}if(p.path==="firebase-admin"||p.path.startsWith("firebase-admin/")||p.path==="firebase-functions"||p.path.startsWith("firebase-functions/"))return{path:p.path,external:!0};if(p.path.match(/@donotdev\/core\/.+/)&&o&&s?.type==="dndev"){let y=p.path.replace("@donotdev/core/","");return{path:f.normalizePath(`${s.root}/packages/core/${y}.ts`)}}if(p.path.startsWith("@donotdev/")||p.path==="valibot"||p.path.startsWith("valibot/"))return null;if(G.length>0){let y=p.path.split("/")[0];if(G.includes(y))return null}return p.path.startsWith(".")||p.path.startsWith("/")?null:{path:p.path,external:!0}})}};if(h.external=[...ne,"firebase-admin","firebase-functions"],h.plugins=[ie,...h.plugins||[]],h.define={"process.env.NODE_ENV":JSON.stringify(v.env.NODE_ENV||"production"),...h.define||{}},i&&s.type==="dndev"){let w=s.root,p=f.normalizePath(`${w}/functions/lib`);h.alias={...h.alias,"@donotdev/functions":p}}return n==="framework"&&(h.entryPoints={"firebase/index":"src/firebase/index.ts","vercel/api/index":"src/vercel/api/index.ts","shared/index":"src/shared/index.ts"}),h}function oe(l={}){let{entry:e="src/index.ts",outDir:t="lib",minify:r=!1,sourcemap:a=!0,platform:n="firebase",...s}=l,o=te();return se({entry:e,outDir:t,minify:r,sourcemap:a,platform:n,workspace:o,...s})}function Ve(l={}){return oe({...l,platform:"framework",bundleWorkspaceDeps:!0})}function Ze(l={}){return oe({...l,platform:"firebase",bundleWorkspaceDeps:!0,importFramework:!0})}export{Ze as createAppFunctionsConfig,oe as createFunctionsEsbuildConfig,Ve as createRootFunctionsConfig};
|
|
@@ -79,7 +79,10 @@
|
|
|
79
79
|
"loading": "جاري التحميل...",
|
|
80
80
|
"authenticating": "جاري المصادقة...",
|
|
81
81
|
"verifying": "جاري التحقق...",
|
|
82
|
-
"checking": "جاري فحص الصلاحيات..."
|
|
82
|
+
"checking": "جاري فحص الصلاحيات...",
|
|
83
|
+
"draft": "مسودة",
|
|
84
|
+
"available": "متاح",
|
|
85
|
+
"deleted": "محذوف"
|
|
83
86
|
},
|
|
84
87
|
"aria": {
|
|
85
88
|
"signInOptions": "خيارات تسجيل الدخول",
|
|
@@ -283,6 +286,60 @@
|
|
|
283
286
|
"type": "نوع الملف يجب أن يكون {{types}}",
|
|
284
287
|
"dimensions": "أبعاد الصورة يجب أن تكون {{width}}x{{height}}"
|
|
285
288
|
},
|
|
289
|
+
"image": {
|
|
290
|
+
"undo": {
|
|
291
|
+
"ariaLabel": "تراجع عن الإجراء الأخير",
|
|
292
|
+
"title": "تراجع (Ctrl+Z)"
|
|
293
|
+
},
|
|
294
|
+
"redo": {
|
|
295
|
+
"ariaLabel": "أعد الإجراء الأخير",
|
|
296
|
+
"title": "أعد (Ctrl+Shift+Z)"
|
|
297
|
+
},
|
|
298
|
+
"upload": {
|
|
299
|
+
"ariaLabel": "رفع {{type}}",
|
|
300
|
+
"ariaLabelSingle": "رفع صورة",
|
|
301
|
+
"ariaLabelMultiple": "رفع صور",
|
|
302
|
+
"selectAriaLabel": "اختر {{type}} للرفع",
|
|
303
|
+
"selectAriaLabelSingle": "اختر صورة للرفع",
|
|
304
|
+
"selectAriaLabelMultiple": "اختر صور للرفع",
|
|
305
|
+
"dropzone": "اسحب وأفلت، الصق، أو انقر لرفع {{type}}",
|
|
306
|
+
"dropzoneSingle": "اسحب وأفلت، الصق، أو انقر لرفع صورة",
|
|
307
|
+
"dropzoneMultiple": "اسحب وأفلت، الصق، أو انقر لرفع صور",
|
|
308
|
+
"maxFiles": "حد أقصى {{max}} صورة، {{size}} ميجابايت لكل منها",
|
|
309
|
+
"maxSize": "{{size}} ميجابايت لكل منها",
|
|
310
|
+
"progress": "تقدم الرفع: {{progress}}%",
|
|
311
|
+
"pending": "رفع معلق",
|
|
312
|
+
"uploaded": "تم رفع {{count}} {{type}}",
|
|
313
|
+
"uploadedSingle": "تم رفع {{count}} صورة",
|
|
314
|
+
"uploadedMultiple": "تم رفع {{count}} صورة",
|
|
315
|
+
"failed": "فشل رفع {{fileName}}"
|
|
316
|
+
},
|
|
317
|
+
"delete": {
|
|
318
|
+
"ariaLabel": "حذف الصورة {{index}}",
|
|
319
|
+
"title": "حذف (Delete/Backspace)",
|
|
320
|
+
"failed": "فشل حذف الصورة"
|
|
321
|
+
},
|
|
322
|
+
"reorder": {
|
|
323
|
+
"ariaLabel": "اسحب لإعادة الترتيب"
|
|
324
|
+
},
|
|
325
|
+
"rotate": {
|
|
326
|
+
"failed": "فشل تدوير الصورة"
|
|
327
|
+
},
|
|
328
|
+
"errors": {
|
|
329
|
+
"maxFiles": "الحد الأقصى {{max}} صورة مسموح بها",
|
|
330
|
+
"singleOnly": "صورة واحدة فقط مسموح بها",
|
|
331
|
+
"notImage": "{{fileName}} ليست صورة",
|
|
332
|
+
"exceedsSize": "{{fileName}} يتجاوز الحد {{size}} ميجابايت"
|
|
333
|
+
},
|
|
334
|
+
"warnings": {
|
|
335
|
+
"duplicates": "تم تخطي الصور المكررة: {{files}}"
|
|
336
|
+
},
|
|
337
|
+
"alt": {
|
|
338
|
+
"upload": "رفع {{index}}",
|
|
339
|
+
"uploaded": "{{label}} {{index}}{{suffix}} (مرفوعة)",
|
|
340
|
+
"pending": "{{label}} {{index}}{{suffix}} (رفع معلق)"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
286
343
|
"custom": {
|
|
287
344
|
"passwordMatch": "كلمات المرور يجب أن تتطابق",
|
|
288
345
|
"phoneNumber": "يرجى إدخال رقم هاتف صالح",
|
|
@@ -329,17 +386,6 @@
|
|
|
329
386
|
"expand": "توسيع التذييل"
|
|
330
387
|
}
|
|
331
388
|
},
|
|
332
|
-
"oauth": {
|
|
333
|
-
"connectServices": "ربط الخدمات",
|
|
334
|
-
"chooseService": "اختر خدمة للربط مع حسابك",
|
|
335
|
-
"noProvidersEnabled": "لا توجد مزودات OAuth",
|
|
336
|
-
"noProvidersMessage": "لا توجد مزودات OAuth مفعلة حالياً. يرجى التحقق من تكوينك.",
|
|
337
|
-
"checkConfiguration": "يرجى التحقق من تكوين مزود OAuth.",
|
|
338
|
-
"noProviders": "لا توجد مزودات OAuth",
|
|
339
|
-
"aria": {
|
|
340
|
-
"connectionOptions": "خيارات ربط OAuth"
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
389
|
"search": {
|
|
344
390
|
"ariaLabel": "بحث",
|
|
345
391
|
"label": "بحث"
|
|
@@ -356,100 +402,6 @@
|
|
|
356
402
|
"addFavorite": "إضافة إلى المفضلة",
|
|
357
403
|
"removeFavorite": "إزالة من المفضلة"
|
|
358
404
|
},
|
|
359
|
-
"auth": {
|
|
360
|
-
"loading": "جاري التحميل...",
|
|
361
|
-
"defaultUser": "مستخدم",
|
|
362
|
-
"signOut": "تسجيل الخروج",
|
|
363
|
-
"deleteAccount": {
|
|
364
|
-
"label": "حذف الحساب",
|
|
365
|
-
"confirm": {
|
|
366
|
-
"title": "حذف حسابك؟",
|
|
367
|
-
"description": "لا يمكن التراجع عن هذا الإجراء. سيتم حذف حسابك نهائياً.",
|
|
368
|
-
"cancel": "إلغاء",
|
|
369
|
-
"delete": "حذف حسابي",
|
|
370
|
-
"deleting": "جاري الحذف...",
|
|
371
|
-
"whatDeleted": "ما سيتم حذفه:",
|
|
372
|
-
"credentials": "حسابك وأوراق اعتماد المصادقة",
|
|
373
|
-
"profile": "معلومات ملفك الشخصي",
|
|
374
|
-
"oauth": "جميع مزودي OAuth المتصلين",
|
|
375
|
-
"subscriptions": "الاشتراكات النشطة (سيتم إلغاؤها)",
|
|
376
|
-
"whatKept": "ما سيتم الاحتفاظ به (مجهول الهوية):",
|
|
377
|
-
"billing": "سجل الفواتير لأغراض ضريبية/محاسبية",
|
|
378
|
-
"invoices": "الفواتير وسجلات المعاملات السابقة",
|
|
379
|
-
"checkbox": "أفهم أن هذا الإجراء لا يمكن التراجع عنه"
|
|
380
|
-
},
|
|
381
|
-
"reauth": {
|
|
382
|
-
"title": "تأكيد هويتك",
|
|
383
|
-
"description": "لأسباب أمنية، يرجى إعادة إدخال كلمة المرور للمتابعة.",
|
|
384
|
-
"cancel": "إلغاء",
|
|
385
|
-
"continue": "متابعة",
|
|
386
|
-
"verifying": "جاري التحقق...",
|
|
387
|
-
"password": "كلمة المرور",
|
|
388
|
-
"passwordPlaceholder": "أدخل كلمة المرور"
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
"profile": "الملف الشخصي",
|
|
392
|
-
"signIn": "تسجيل الدخول",
|
|
393
|
-
"signingIn": "جاري تسجيل الدخول...",
|
|
394
|
-
"creatingAccount": "جاري إنشاء الحساب...",
|
|
395
|
-
"email": "البريد الإلكتروني",
|
|
396
|
-
"password": "كلمة المرور",
|
|
397
|
-
"emailHint": "أدخل عنوان بريدك الإلكتروني",
|
|
398
|
-
"passwordHintSignin": "أدخل كلمة المرور",
|
|
399
|
-
"passwordHintSignup": "أدخل كلمة مرور (6 أحرف على الأقل)",
|
|
400
|
-
"signInForm": "نموذج تسجيل الدخول",
|
|
401
|
-
"signUpForm": "نموذج التسجيل",
|
|
402
|
-
"emailPlaceholder": "أدخل عنوان بريدك الإلكتروني",
|
|
403
|
-
"passwordPlaceholder": "أدخل كلمة المرور",
|
|
404
|
-
"checkEmail": "تحقق من بريدك الإلكتروني",
|
|
405
|
-
"errorTitle": "خطأ في ربط الحساب",
|
|
406
|
-
"popup": "نافذة منبثقة",
|
|
407
|
-
"redirect": "إعادة توجيه",
|
|
408
|
-
"toggleMethod": "التبديل بين المصادقة بالنافذة المنبثقة وإعادة التوجيه",
|
|
409
|
-
"popupDescription": "ستفتح نافذة منبثقة للمصادقة",
|
|
410
|
-
"redirectDescription": "سيتم إعادة توجيهك لإكمال المصادقة",
|
|
411
|
-
"fedcmRequired": "يتطلب Google One Tap متصفحاً حديثاً (Chrome 116+ أو Edge 116+)",
|
|
412
|
-
"userMenu": "قائمة المستخدم",
|
|
413
|
-
"settings": "الإعدادات",
|
|
414
|
-
"account": "الحساب",
|
|
415
|
-
"logout": "تسجيل الخروج",
|
|
416
|
-
"login": "تسجيل الدخول",
|
|
417
|
-
"register": "التسجيل",
|
|
418
|
-
"forgotPassword": "نسيت كلمة المرور؟",
|
|
419
|
-
"emailVerification": "تحقق البريد الإلكتروني",
|
|
420
|
-
"resendEmail": "إعادة إرسال البريد",
|
|
421
|
-
"verificationSent": "تم إرسال بريد التحقق",
|
|
422
|
-
"verificationRequired": "يرجى التحقق من بريدك الإلكتروني",
|
|
423
|
-
"verificationSuccess": "تم التحقق من البريد الإلكتروني بنجاح",
|
|
424
|
-
"verificationError": "فشل التحقق",
|
|
425
|
-
"passwordReset": "إعادة تعيين كلمة المرور",
|
|
426
|
-
"passwordResetSent": "تم إرسال بريد إعادة تعيين كلمة المرور",
|
|
427
|
-
"passwordResetSuccess": "تم إعادة تعيين كلمة المرور بنجاح",
|
|
428
|
-
"passwordResetError": "فشل إعادة تعيين كلمة المرور",
|
|
429
|
-
"accountLinking": "ربط الحساب",
|
|
430
|
-
"linkAccount": "ربط الحساب",
|
|
431
|
-
"unlinkAccount": "إلغاء ربط الحساب",
|
|
432
|
-
"accountLinked": "تم ربط الحساب بنجاح",
|
|
433
|
-
"accountUnlinked": "تم إلغاء ربط الحساب بنجاح",
|
|
434
|
-
"linkError": "فشل في ربط الحساب",
|
|
435
|
-
"unlinkError": "فشل في إلغاء ربط الحساب",
|
|
436
|
-
"networkError": "خطأ في الشبكة",
|
|
437
|
-
"tryAgain": "حاول مرة أخرى",
|
|
438
|
-
"cancel": "إلغاء",
|
|
439
|
-
"confirm": "تأكيد",
|
|
440
|
-
"save": "حفظ",
|
|
441
|
-
"edit": "تعديل",
|
|
442
|
-
"delete": "حذف",
|
|
443
|
-
"close": "إغلاق",
|
|
444
|
-
"back": "رجوع",
|
|
445
|
-
"next": "التالي",
|
|
446
|
-
"previous": "السابق",
|
|
447
|
-
"submit": "إرسال",
|
|
448
|
-
"error": "خطأ",
|
|
449
|
-
"success": "نجح",
|
|
450
|
-
"warning": "تحذير",
|
|
451
|
-
"info": "معلومات"
|
|
452
|
-
},
|
|
453
405
|
"copyToClipboard": "نسخ إلى الحافظة",
|
|
454
406
|
"copied": "تم النسخ!",
|
|
455
407
|
"copyPassword": "نسخ كلمة المرور",
|
|
@@ -516,5 +468,69 @@
|
|
|
516
468
|
"goHome": "الذهاب إلى الصفحة الرئيسية",
|
|
517
469
|
"goBack": "رجوع",
|
|
518
470
|
"contactSupport": "إذا استمرت المشكلة، يرجى الاتصال بالدعم."
|
|
471
|
+
},
|
|
472
|
+
"redirectOverlay": {
|
|
473
|
+
"phases": {
|
|
474
|
+
"connecting": "جاري الاتصال بالخادم الآمن...",
|
|
475
|
+
"preparing": "جاري تحضير جلستك...",
|
|
476
|
+
"redirecting": "جاري إعادة التوجيه...",
|
|
477
|
+
"timeout": "يستغرق هذا وقتاً أطول من المتوقع..."
|
|
478
|
+
},
|
|
479
|
+
"cancel": "إلغاء",
|
|
480
|
+
"doNotRefresh": "يرجى عدم التحديث أو الرجوع للخلف",
|
|
481
|
+
"default": {
|
|
482
|
+
"title": "إعادة التوجيه",
|
|
483
|
+
"message": "يرجى الانتظار أثناء إعادة توجيهك...",
|
|
484
|
+
"subtitle": "قد يستغرق هذا لحظة",
|
|
485
|
+
"ariaLabel": "جاري إعادة التوجيه، يرجى الانتظار"
|
|
486
|
+
},
|
|
487
|
+
"stripe-checkout": {
|
|
488
|
+
"title": "إعادة التوجيه إلى Stripe",
|
|
489
|
+
"message": "جاري تهيئة الدفع الآمن...",
|
|
490
|
+
"subtitle": "قد يستغرق هذا لحظة في التحميل الأول",
|
|
491
|
+
"ariaLabel": "جاري تحضير الدفع الآمن، يرجى الانتظار"
|
|
492
|
+
},
|
|
493
|
+
"stripe-portal": {
|
|
494
|
+
"title": "إعادة التوجيه إلى Stripe",
|
|
495
|
+
"message": "جاري فتح بوابة الفواتير...",
|
|
496
|
+
"subtitle": "إدارة اشتراكك وفواتيرك",
|
|
497
|
+
"ariaLabel": "جاري فتح بوابة الفواتير، يرجى الانتظار"
|
|
498
|
+
},
|
|
499
|
+
"oauth-google": {
|
|
500
|
+
"title": "تسجيل الدخول بـ Google",
|
|
501
|
+
"message": "جاري الاتصال بـ Google...",
|
|
502
|
+
"subtitle": "سيتم إعادة توجيهك لتسجيل الدخول",
|
|
503
|
+
"ariaLabel": "جاري تسجيل الدخول بـ Google، يرجى الانتظار"
|
|
504
|
+
},
|
|
505
|
+
"oauth-github": {
|
|
506
|
+
"title": "تسجيل الدخول بـ GitHub",
|
|
507
|
+
"message": "جاري الاتصال بـ GitHub...",
|
|
508
|
+
"subtitle": "سيتم إعادة توجيهك لتسجيل الدخول",
|
|
509
|
+
"ariaLabel": "جاري تسجيل الدخول بـ GitHub، يرجى الانتظار"
|
|
510
|
+
},
|
|
511
|
+
"oauth-apple": {
|
|
512
|
+
"title": "تسجيل الدخول بـ Apple",
|
|
513
|
+
"message": "جاري الاتصال بـ Apple...",
|
|
514
|
+
"subtitle": "سيتم إعادة توجيهك لتسجيل الدخول",
|
|
515
|
+
"ariaLabel": "جاري تسجيل الدخول بـ Apple، يرجى الانتظار"
|
|
516
|
+
},
|
|
517
|
+
"oauth-microsoft": {
|
|
518
|
+
"title": "تسجيل الدخول بـ Microsoft",
|
|
519
|
+
"message": "جاري الاتصال بـ Microsoft...",
|
|
520
|
+
"subtitle": "سيتم إعادة توجيهك لتسجيل الدخول",
|
|
521
|
+
"ariaLabel": "جاري تسجيل الدخول بـ Microsoft، يرجى الانتظار"
|
|
522
|
+
},
|
|
523
|
+
"oauth-facebook": {
|
|
524
|
+
"title": "تسجيل الدخول بـ Facebook",
|
|
525
|
+
"message": "جاري الاتصال بـ Facebook...",
|
|
526
|
+
"subtitle": "سيتم إعادة توجيهك لتسجيل الدخول",
|
|
527
|
+
"ariaLabel": "جاري تسجيل الدخول بـ Facebook، يرجى الانتظار"
|
|
528
|
+
},
|
|
529
|
+
"auth-email-link": {
|
|
530
|
+
"title": "إرسال التحقق",
|
|
531
|
+
"message": "جاري تحضير رابط التحقق...",
|
|
532
|
+
"subtitle": "تحقق من صندوق الوارد",
|
|
533
|
+
"ariaLabel": "جاري إرسال بريد التحقق، يرجى الانتظار"
|
|
534
|
+
}
|
|
519
535
|
}
|
|
520
536
|
}
|
|
@@ -79,7 +79,10 @@
|
|
|
79
79
|
"loading": "Lädt...",
|
|
80
80
|
"authenticating": "Authentifizierung...",
|
|
81
81
|
"verifying": "Überprüfung...",
|
|
82
|
-
"checking": "Berechtigungen werden überprüft..."
|
|
82
|
+
"checking": "Berechtigungen werden überprüft...",
|
|
83
|
+
"draft": "Entwurf",
|
|
84
|
+
"available": "Verfügbar",
|
|
85
|
+
"deleted": "Gelöscht"
|
|
83
86
|
},
|
|
84
87
|
"aria": {
|
|
85
88
|
"signInOptions": "Anmeldeoptionen",
|
|
@@ -283,6 +286,60 @@
|
|
|
283
286
|
"type": "Der Dateityp muss {{types}} sein",
|
|
284
287
|
"dimensions": "Die Bildabmessungen müssen {{width}}x{{height}} sein"
|
|
285
288
|
},
|
|
289
|
+
"image": {
|
|
290
|
+
"undo": {
|
|
291
|
+
"ariaLabel": "Letzte Aktion rückgängig machen",
|
|
292
|
+
"title": "Rückgängig (Strg+Z)"
|
|
293
|
+
},
|
|
294
|
+
"redo": {
|
|
295
|
+
"ariaLabel": "Letzte Aktion wiederholen",
|
|
296
|
+
"title": "Wiederholen (Strg+Umschalt+Z)"
|
|
297
|
+
},
|
|
298
|
+
"upload": {
|
|
299
|
+
"ariaLabel": "{{type}} hochladen",
|
|
300
|
+
"ariaLabelSingle": "Ein Bild hochladen",
|
|
301
|
+
"ariaLabelMultiple": "Bilder hochladen",
|
|
302
|
+
"selectAriaLabel": "{{type}} zum Hochladen auswählen",
|
|
303
|
+
"selectAriaLabelSingle": "Ein Bild zum Hochladen auswählen",
|
|
304
|
+
"selectAriaLabelMultiple": "Bilder zum Hochladen auswählen",
|
|
305
|
+
"dropzone": "Ziehen und ablegen, einfügen oder klicken, um {{type}} hochzuladen",
|
|
306
|
+
"dropzoneSingle": "Ziehen und ablegen, einfügen oder klicken, um ein Bild hochzuladen",
|
|
307
|
+
"dropzoneMultiple": "Ziehen und ablegen, einfügen oder klicken, um Bilder hochzuladen",
|
|
308
|
+
"maxFiles": "Max {{max}} Bilder, {{size}}MB jeweils",
|
|
309
|
+
"maxSize": "{{size}}MB jeweils",
|
|
310
|
+
"progress": "Upload-Fortschritt: {{progress}}%",
|
|
311
|
+
"pending": "Upload ausstehend",
|
|
312
|
+
"uploaded": "{{count}} {{type}} hochgeladen",
|
|
313
|
+
"uploadedSingle": "{{count}} Bild hochgeladen",
|
|
314
|
+
"uploadedMultiple": "{{count}} Bilder hochgeladen",
|
|
315
|
+
"failed": "Fehler beim Hochladen von {{fileName}}"
|
|
316
|
+
},
|
|
317
|
+
"delete": {
|
|
318
|
+
"ariaLabel": "Bild {{index}} löschen",
|
|
319
|
+
"title": "Löschen (Entf/Rücktaste)",
|
|
320
|
+
"failed": "Fehler beim Löschen des Bildes"
|
|
321
|
+
},
|
|
322
|
+
"reorder": {
|
|
323
|
+
"ariaLabel": "Zum Neuordnen ziehen"
|
|
324
|
+
},
|
|
325
|
+
"rotate": {
|
|
326
|
+
"failed": "Fehler beim Drehen des Bildes"
|
|
327
|
+
},
|
|
328
|
+
"errors": {
|
|
329
|
+
"maxFiles": "Maximal {{max}} Bilder erlaubt",
|
|
330
|
+
"singleOnly": "Nur ein Bild erlaubt",
|
|
331
|
+
"notImage": "{{fileName}} ist kein Bild",
|
|
332
|
+
"exceedsSize": "{{fileName}} überschreitet das Limit von {{size}}MB"
|
|
333
|
+
},
|
|
334
|
+
"warnings": {
|
|
335
|
+
"duplicates": "Doppelte Bilder übersprungen: {{files}}"
|
|
336
|
+
},
|
|
337
|
+
"alt": {
|
|
338
|
+
"upload": "Hochladen {{index}}",
|
|
339
|
+
"uploaded": "{{label}} {{index}}{{suffix}} (hochgeladen)",
|
|
340
|
+
"pending": "{{label}} {{index}}{{suffix}} (Upload ausstehend)"
|
|
341
|
+
}
|
|
342
|
+
},
|
|
286
343
|
"custom": {
|
|
287
344
|
"passwordMatch": "Passwörter müssen übereinstimmen",
|
|
288
345
|
"phoneNumber": "Bitte geben Sie eine gültige Telefonnummer ein",
|
|
@@ -329,17 +386,6 @@
|
|
|
329
386
|
"expand": "Fußzeile ausklappen"
|
|
330
387
|
}
|
|
331
388
|
},
|
|
332
|
-
"oauth": {
|
|
333
|
-
"connectServices": "Dienste verbinden",
|
|
334
|
-
"chooseService": "Wählen Sie einen Dienst aus, der mit Ihrem Konto verbunden werden soll",
|
|
335
|
-
"noProvidersEnabled": "Keine OAuth-Anbieter",
|
|
336
|
-
"noProvidersMessage": "Derzeit sind keine OAuth-Anbieter aktiviert. Bitte überprüfen Sie Ihre Konfiguration.",
|
|
337
|
-
"checkConfiguration": "Bitte überprüfen Sie Ihre OAuth-Anbieterkonfiguration.",
|
|
338
|
-
"noProviders": "Keine OAuth-Anbieter",
|
|
339
|
-
"aria": {
|
|
340
|
-
"connectionOptions": "OAuth-Verbindungsoptionen"
|
|
341
|
-
}
|
|
342
|
-
},
|
|
343
389
|
"search": {
|
|
344
390
|
"ariaLabel": "Suchen",
|
|
345
391
|
"label": "Suchen"
|
|
@@ -356,100 +402,6 @@
|
|
|
356
402
|
"addFavorite": "Zu Favoriten hinzufügen",
|
|
357
403
|
"removeFavorite": "Aus Favoriten entfernen"
|
|
358
404
|
},
|
|
359
|
-
"auth": {
|
|
360
|
-
"loading": "Lädt...",
|
|
361
|
-
"defaultUser": "Benutzer",
|
|
362
|
-
"signOut": "Abmelden",
|
|
363
|
-
"deleteAccount": {
|
|
364
|
-
"label": "Konto löschen",
|
|
365
|
-
"confirm": {
|
|
366
|
-
"title": "Ihr Konto löschen?",
|
|
367
|
-
"description": "Diese Aktion kann nicht rückgängig gemacht werden. Dies wird Ihr Konto dauerhaft löschen.",
|
|
368
|
-
"cancel": "Abbrechen",
|
|
369
|
-
"delete": "Mein Konto löschen",
|
|
370
|
-
"deleting": "Wird gelöscht...",
|
|
371
|
-
"whatDeleted": "Was gelöscht wird:",
|
|
372
|
-
"credentials": "Ihr Konto und Authentifizierungsdaten",
|
|
373
|
-
"profile": "Ihre Profilinformationen",
|
|
374
|
-
"oauth": "Alle verbundenen OAuth-Anbieter",
|
|
375
|
-
"subscriptions": "Aktive Abonnements (werden gekündigt)",
|
|
376
|
-
"whatKept": "Was erhalten bleibt (anonymisiert):",
|
|
377
|
-
"billing": "Rechnungsverlauf für Steuer-/Buchhaltungszwecke",
|
|
378
|
-
"invoices": "Vergangene Rechnungen und Transaktionsaufzeichnungen",
|
|
379
|
-
"checkbox": "Ich verstehe, dass diese Aktion nicht rückgängig gemacht werden kann"
|
|
380
|
-
},
|
|
381
|
-
"reauth": {
|
|
382
|
-
"title": "Ihre Identität bestätigen",
|
|
383
|
-
"description": "Aus Sicherheitsgründen geben Sie bitte Ihr Passwort erneut ein, um fortzufahren.",
|
|
384
|
-
"cancel": "Abbrechen",
|
|
385
|
-
"continue": "Fortfahren",
|
|
386
|
-
"verifying": "Wird überprüft...",
|
|
387
|
-
"password": "Passwort",
|
|
388
|
-
"passwordPlaceholder": "Geben Sie Ihr Passwort ein"
|
|
389
|
-
}
|
|
390
|
-
},
|
|
391
|
-
"profile": "Profil",
|
|
392
|
-
"signIn": "Anmelden",
|
|
393
|
-
"signingIn": "Anmeldung...",
|
|
394
|
-
"creatingAccount": "Konto wird erstellt...",
|
|
395
|
-
"email": "E-Mail",
|
|
396
|
-
"password": "Passwort",
|
|
397
|
-
"emailHint": "Geben Sie Ihre E-Mail-Adresse ein",
|
|
398
|
-
"passwordHintSignin": "Geben Sie Ihr Passwort ein",
|
|
399
|
-
"passwordHintSignup": "Geben Sie ein Passwort ein (mindestens 6 Zeichen)",
|
|
400
|
-
"signInForm": "Anmeldeformular",
|
|
401
|
-
"signUpForm": "Registrierungsformular",
|
|
402
|
-
"emailPlaceholder": "Geben Sie Ihre E-Mail-Adresse ein",
|
|
403
|
-
"passwordPlaceholder": "Geben Sie Ihr Passwort ein",
|
|
404
|
-
"userMenu": "Benutzermenü",
|
|
405
|
-
"settings": "Einstellungen",
|
|
406
|
-
"account": "Konto",
|
|
407
|
-
"logout": "Abmelden",
|
|
408
|
-
"login": "Anmelden",
|
|
409
|
-
"register": "Registrieren",
|
|
410
|
-
"forgotPassword": "Passwort vergessen?",
|
|
411
|
-
"emailVerification": "E-Mail-Bestätigung",
|
|
412
|
-
"resendEmail": "E-Mail erneut senden",
|
|
413
|
-
"verificationRequired": "Bitte bestätigen Sie Ihre E-Mail",
|
|
414
|
-
"verificationSuccess": "E-Mail erfolgreich bestätigt",
|
|
415
|
-
"verificationError": "Bestätigung fehlgeschlagen",
|
|
416
|
-
"passwordReset": "Passwort zurücksetzen",
|
|
417
|
-
"passwordResetSent": "E-Mail zum Zurücksetzen des Passworts gesendet",
|
|
418
|
-
"passwordResetSuccess": "Passwort erfolgreich zurückgesetzt",
|
|
419
|
-
"passwordResetError": "Passwort zurücksetzen fehlgeschlagen",
|
|
420
|
-
"accountLinking": "Kontoverknüpfung",
|
|
421
|
-
"linkAccount": "Konto verknüpfen",
|
|
422
|
-
"unlinkAccount": "Kontoverknüpfung aufheben",
|
|
423
|
-
"accountLinked": "Konto erfolgreich verknüpft",
|
|
424
|
-
"accountUnlinked": "Kontoverknüpfung erfolgreich aufgehoben",
|
|
425
|
-
"linkError": "Kontoverknüpfung fehlgeschlagen",
|
|
426
|
-
"unlinkError": "Kontoverknüpfung aufheben fehlgeschlagen",
|
|
427
|
-
"checkEmail": "Überprüfen Sie Ihre E-Mail",
|
|
428
|
-
"verificationSent": "Wir haben Ihnen einen Bestätigungslink gesendet, um die Eigentümerschaft Ihres Kontos zu bestätigen.",
|
|
429
|
-
"errorTitle": "Kontoverknüpfungsfehler",
|
|
430
|
-
"networkError": "Netzwerkfehler",
|
|
431
|
-
"tryAgain": "Erneut versuchen",
|
|
432
|
-
"cancel": "Abbrechen",
|
|
433
|
-
"confirm": "Bestätigen",
|
|
434
|
-
"save": "Speichern",
|
|
435
|
-
"edit": "Bearbeiten",
|
|
436
|
-
"delete": "Löschen",
|
|
437
|
-
"close": "Schließen",
|
|
438
|
-
"back": "Zurück",
|
|
439
|
-
"next": "Weiter",
|
|
440
|
-
"previous": "Zurück",
|
|
441
|
-
"submit": "Absenden",
|
|
442
|
-
"error": "Fehler",
|
|
443
|
-
"success": "Erfolg",
|
|
444
|
-
"warning": "Warnung",
|
|
445
|
-
"info": "Information",
|
|
446
|
-
"popup": "Popup",
|
|
447
|
-
"redirect": "Weiterleitung",
|
|
448
|
-
"toggleMethod": "Zwischen Popup- und Weiterleitungsauthentifizierung wechseln",
|
|
449
|
-
"popupDescription": "Ein Popup-Fenster öffnet sich zur Authentifizierung",
|
|
450
|
-
"redirectDescription": "Sie werden zur Authentifizierung weitergeleitet",
|
|
451
|
-
"fedcmRequired": "Google One Tap erfordert einen modernen Browser (Chrome 116+ oder Edge 116+)"
|
|
452
|
-
},
|
|
453
405
|
"copyToClipboard": "In Zwischenablage kopieren",
|
|
454
406
|
"copied": "Kopiert!",
|
|
455
407
|
"copyPassword": "Passwort kopieren",
|
|
@@ -516,5 +468,69 @@
|
|
|
516
468
|
"goHome": "Zur Startseite",
|
|
517
469
|
"goBack": "Zurück",
|
|
518
470
|
"contactSupport": "Wenn das Problem weiterhin besteht, kontaktieren Sie bitte den Support."
|
|
471
|
+
},
|
|
472
|
+
"redirectOverlay": {
|
|
473
|
+
"phases": {
|
|
474
|
+
"connecting": "Verbindung zum sicheren Server...",
|
|
475
|
+
"preparing": "Ihre Sitzung wird vorbereitet...",
|
|
476
|
+
"redirecting": "Weiterleitung...",
|
|
477
|
+
"timeout": "Dies dauert länger als erwartet..."
|
|
478
|
+
},
|
|
479
|
+
"cancel": "Abbrechen",
|
|
480
|
+
"doNotRefresh": "Bitte nicht aktualisieren oder zurückgehen",
|
|
481
|
+
"default": {
|
|
482
|
+
"title": "Weiterleitung",
|
|
483
|
+
"message": "Bitte warten Sie, während wir Sie weiterleiten...",
|
|
484
|
+
"subtitle": "Dies kann einen Moment dauern",
|
|
485
|
+
"ariaLabel": "Weiterleitung, bitte warten"
|
|
486
|
+
},
|
|
487
|
+
"stripe-checkout": {
|
|
488
|
+
"title": "Weiterleitung zu Stripe",
|
|
489
|
+
"message": "Sichere Zahlung wird initialisiert...",
|
|
490
|
+
"subtitle": "Dies kann beim ersten Laden einen Moment dauern",
|
|
491
|
+
"ariaLabel": "Sichere Zahlung wird vorbereitet, bitte warten"
|
|
492
|
+
},
|
|
493
|
+
"stripe-portal": {
|
|
494
|
+
"title": "Weiterleitung zu Stripe",
|
|
495
|
+
"message": "Abrechnungsportal wird geöffnet...",
|
|
496
|
+
"subtitle": "Verwalten Sie Ihr Abonnement und Ihre Rechnungen",
|
|
497
|
+
"ariaLabel": "Abrechnungsportal wird geöffnet, bitte warten"
|
|
498
|
+
},
|
|
499
|
+
"oauth-google": {
|
|
500
|
+
"title": "Anmeldung mit Google",
|
|
501
|
+
"message": "Verbindung zu Google...",
|
|
502
|
+
"subtitle": "Sie werden zur Anmeldung weitergeleitet",
|
|
503
|
+
"ariaLabel": "Anmeldung mit Google, bitte warten"
|
|
504
|
+
},
|
|
505
|
+
"oauth-github": {
|
|
506
|
+
"title": "Anmeldung mit GitHub",
|
|
507
|
+
"message": "Verbindung zu GitHub...",
|
|
508
|
+
"subtitle": "Sie werden zur Anmeldung weitergeleitet",
|
|
509
|
+
"ariaLabel": "Anmeldung mit GitHub, bitte warten"
|
|
510
|
+
},
|
|
511
|
+
"oauth-apple": {
|
|
512
|
+
"title": "Anmeldung mit Apple",
|
|
513
|
+
"message": "Verbindung zu Apple...",
|
|
514
|
+
"subtitle": "Sie werden zur Anmeldung weitergeleitet",
|
|
515
|
+
"ariaLabel": "Anmeldung mit Apple, bitte warten"
|
|
516
|
+
},
|
|
517
|
+
"oauth-microsoft": {
|
|
518
|
+
"title": "Anmeldung mit Microsoft",
|
|
519
|
+
"message": "Verbindung zu Microsoft...",
|
|
520
|
+
"subtitle": "Sie werden zur Anmeldung weitergeleitet",
|
|
521
|
+
"ariaLabel": "Anmeldung mit Microsoft, bitte warten"
|
|
522
|
+
},
|
|
523
|
+
"oauth-facebook": {
|
|
524
|
+
"title": "Anmeldung mit Facebook",
|
|
525
|
+
"message": "Verbindung zu Facebook...",
|
|
526
|
+
"subtitle": "Sie werden zur Anmeldung weitergeleitet",
|
|
527
|
+
"ariaLabel": "Anmeldung mit Facebook, bitte warten"
|
|
528
|
+
},
|
|
529
|
+
"auth-email-link": {
|
|
530
|
+
"title": "Verifizierung wird gesendet",
|
|
531
|
+
"message": "Ihr Verifizierungslink wird vorbereitet...",
|
|
532
|
+
"subtitle": "Überprüfen Sie Ihren Posteingang",
|
|
533
|
+
"ariaLabel": "Verifizierungs-E-Mail wird gesendet, bitte warten"
|
|
534
|
+
}
|
|
519
535
|
}
|
|
520
536
|
}
|