@gadgetinc/ggt 1.7.4 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +167 -31
- package/dist/{add-KJLV4API.js → add-7MLI3TCY.js} +10 -9
- package/dist/add-7MLI3TCY.js.map +7 -0
- package/dist/agent-plugin-543K6WBH.js +11 -0
- package/dist/agent-plugin-543K6WBH.js.map +7 -0
- package/dist/chunk-2HJS3KFB.js +2 -0
- package/dist/{chunk-J2OYMAMD.js.map → chunk-2HJS3KFB.js.map} +2 -2
- package/dist/chunk-3WKH3DJL.js +2 -0
- package/dist/chunk-3WKH3DJL.js.map +7 -0
- package/dist/chunk-577KP32Z.js +8 -0
- package/dist/chunk-577KP32Z.js.map +7 -0
- package/dist/chunk-6FVHOLT7.js +28 -0
- package/dist/chunk-6FVHOLT7.js.map +7 -0
- package/dist/chunk-72J7X5LR.js +2 -0
- package/dist/chunk-72J7X5LR.js.map +7 -0
- package/dist/chunk-ALSXPCRD.js +118 -0
- package/dist/chunk-ALSXPCRD.js.map +7 -0
- package/dist/chunk-CNNOPE5K.js +69 -0
- package/dist/chunk-CNNOPE5K.js.map +7 -0
- package/dist/chunk-ETKWDO4V.js +2 -0
- package/dist/chunk-ETKWDO4V.js.map +7 -0
- package/dist/chunk-F6BGQ4LG.js +11 -0
- package/dist/chunk-F6BGQ4LG.js.map +7 -0
- package/dist/chunk-FE5O5VX4.js +2 -0
- package/dist/chunk-FE5O5VX4.js.map +7 -0
- package/dist/chunk-GJGBTM5Y.js +2 -0
- package/dist/chunk-GJGBTM5Y.js.map +7 -0
- package/dist/chunk-GZTHIOXS.js +2 -0
- package/dist/chunk-GZTHIOXS.js.map +7 -0
- package/dist/chunk-IQSZEOYY.js +283 -0
- package/dist/chunk-IQSZEOYY.js.map +7 -0
- package/dist/chunk-J232VCIM.js +2 -0
- package/dist/chunk-J232VCIM.js.map +7 -0
- package/dist/{chunk-SX5LO3XQ.js → chunk-KKIL22RY.js} +1 -1
- package/dist/{chunk-SX5LO3XQ.js.map → chunk-KKIL22RY.js.map} +1 -1
- package/dist/chunk-L2XBSR7G.js +2 -0
- package/dist/chunk-L2XBSR7G.js.map +7 -0
- package/dist/chunk-N5FFICAP.js +9 -0
- package/dist/chunk-N5FFICAP.js.map +7 -0
- package/dist/chunk-TGCJ6TMW.js +10 -0
- package/dist/chunk-TGCJ6TMW.js.map +7 -0
- package/dist/chunk-ULJYEUQG.js +113 -0
- package/dist/chunk-ULJYEUQG.js.map +7 -0
- package/dist/chunk-UVVKKUYG.js +10 -0
- package/dist/chunk-UVVKKUYG.js.map +7 -0
- package/dist/{chunk-JSGXXXFU.js → chunk-WZ2PO6H2.js} +6 -6
- package/dist/{chunk-JSGXXXFU.js.map → chunk-WZ2PO6H2.js.map} +3 -3
- package/dist/chunk-X4XSYLCE.js +12 -0
- package/dist/chunk-X4XSYLCE.js.map +7 -0
- package/dist/chunk-ZYDMXS5R.js +6 -0
- package/dist/chunk-ZYDMXS5R.js.map +7 -0
- package/dist/{configure-CXY6JQB7.js → configure-PYRXYNGZ.js} +2 -2
- package/dist/debugger-VKLUEWIN.js +41 -0
- package/dist/debugger-VKLUEWIN.js.map +7 -0
- package/dist/deploy-JCREEGBA.js +25 -0
- package/dist/deploy-JCREEGBA.js.map +7 -0
- package/dist/dev-Y2GLI7EH.js +59 -0
- package/dist/dev-Y2GLI7EH.js.map +7 -0
- package/dist/env-5OPHX3MC.js +135 -0
- package/dist/env-5OPHX3MC.js.map +7 -0
- package/dist/esm-3JVXH7DT.js +37 -0
- package/dist/esm-3JVXH7DT.js.map +7 -0
- package/dist/eval-LZPZ6PBQ.js +54 -0
- package/dist/eval-LZPZ6PBQ.js.map +7 -0
- package/dist/getMachineId-bsd-QUXN4NKS.js +2 -0
- package/dist/getMachineId-bsd-QUXN4NKS.js.map +7 -0
- package/dist/getMachineId-darwin-TCXBAX22.js +3 -0
- package/dist/getMachineId-darwin-TCXBAX22.js.map +7 -0
- package/dist/getMachineId-linux-IJ3LYIOX.js +2 -0
- package/dist/getMachineId-linux-IJ3LYIOX.js.map +7 -0
- package/dist/getMachineId-unsupported-IKXBUCYY.js +2 -0
- package/dist/getMachineId-unsupported-IKXBUCYY.js.map +7 -0
- package/dist/getMachineId-win-6CX7VSFF.js +2 -0
- package/dist/getMachineId-win-6CX7VSFF.js.map +7 -0
- package/dist/ggt-KUAF6WUA.js +45 -0
- package/dist/ggt-KUAF6WUA.js.map +7 -0
- package/dist/{list-3QZTSHQV.js → list-IANT7SNF.js} +2 -2
- package/dist/login-TYRZLN5S.js +2 -0
- package/dist/{logout-SWWGI27Q.js → logout-P75XYYZ6.js} +2 -2
- package/dist/logs-SBMD6JSR.js +28 -0
- package/dist/logs-SBMD6JSR.js.map +7 -0
- package/dist/main.js +1 -43
- package/dist/main.js.map +4 -4
- package/dist/{open-J2ZVNVJ6.js → open-JPAMII4K.js} +11 -11
- package/dist/open-JPAMII4K.js.map +7 -0
- package/dist/problems-EZRSHLZT.js +14 -0
- package/dist/problems-EZRSHLZT.js.map +7 -0
- package/dist/pull-R3PMBVOT.js +28 -0
- package/dist/pull-R3PMBVOT.js.map +7 -0
- package/dist/push-5XEEESQQ.js +2 -0
- package/dist/status-RJN5ES6S.js +14 -0
- package/dist/status-RJN5ES6S.js.map +7 -0
- package/dist/update-X7YS3MNH.js +2 -0
- package/dist/update-X7YS3MNH.js.map +7 -0
- package/dist/var-PC6KQUPF.js +159 -0
- package/dist/var-PC6KQUPF.js.map +7 -0
- package/dist/{version-NZHW3VLV.js → version-GZJOU2CV.js} +2 -2
- package/dist/{whoami-MIJFO4MW.js → whoami-GKPGPZ3B.js} +2 -2
- package/package.json +64 -74
- package/dist/add-KJLV4API.js.map +0 -7
- package/dist/chunk-24OT7GHO.js +0 -65
- package/dist/chunk-24OT7GHO.js.map +0 -7
- package/dist/chunk-HN3YKQ3C.js +0 -6
- package/dist/chunk-HN3YKQ3C.js.map +0 -7
- package/dist/chunk-J2OYMAMD.js +0 -2
- package/dist/chunk-JBY5A44K.js +0 -7
- package/dist/chunk-JBY5A44K.js.map +0 -7
- package/dist/chunk-L5H5T2T6.js +0 -66
- package/dist/chunk-L5H5T2T6.js.map +0 -7
- package/dist/chunk-M6L2X3GX.js +0 -194
- package/dist/chunk-M6L2X3GX.js.map +0 -7
- package/dist/chunk-MHTXRD5G.js +0 -2
- package/dist/chunk-MHTXRD5G.js.map +0 -7
- package/dist/chunk-OIVNACS7.js +0 -12
- package/dist/chunk-OIVNACS7.js.map +0 -7
- package/dist/chunk-QXWICGG6.js +0 -2
- package/dist/chunk-QXWICGG6.js.map +0 -7
- package/dist/chunk-WNAYBYSG.js +0 -8
- package/dist/chunk-WNAYBYSG.js.map +0 -7
- package/dist/chunk-X47UA3VR.js +0 -2
- package/dist/chunk-X47UA3VR.js.map +0 -7
- package/dist/chunk-XGQQOMPO.js +0 -2
- package/dist/chunk-XGQQOMPO.js.map +0 -7
- package/dist/chunk-XKYYKHP4.js +0 -28
- package/dist/chunk-XKYYKHP4.js.map +0 -7
- package/dist/chunk-YU6P3ESA.js +0 -121
- package/dist/chunk-YU6P3ESA.js.map +0 -7
- package/dist/deploy-XFZBJJWP.js +0 -25
- package/dist/deploy-XFZBJJWP.js.map +0 -7
- package/dist/dev-GG6TU3DJ.js +0 -59
- package/dist/dev-GG6TU3DJ.js.map +0 -7
- package/dist/esm-PLVGBDRY.js +0 -38
- package/dist/esm-PLVGBDRY.js.map +0 -7
- package/dist/login-HKGCVIWO.js +0 -2
- package/dist/logs-DW4PH3U6.js +0 -28
- package/dist/logs-DW4PH3U6.js.map +0 -7
- package/dist/open-J2ZVNVJ6.js.map +0 -7
- package/dist/pull-ORNQFSFG.js +0 -28
- package/dist/pull-ORNQFSFG.js.map +0 -7
- package/dist/push-KMZZ6JJL.js +0 -2
- package/dist/status-JAREJZ4X.js +0 -14
- package/dist/status-JAREJZ4X.js.map +0 -7
- /package/dist/{configure-CXY6JQB7.js.map → configure-PYRXYNGZ.js.map} +0 -0
- /package/dist/{list-3QZTSHQV.js.map → list-IANT7SNF.js.map} +0 -0
- /package/dist/{login-HKGCVIWO.js.map → login-TYRZLN5S.js.map} +0 -0
- /package/dist/{logout-SWWGI27Q.js.map → logout-P75XYYZ6.js.map} +0 -0
- /package/dist/{push-KMZZ6JJL.js.map → push-5XEEESQQ.js.map} +0 -0
- /package/dist/{version-NZHW3VLV.js.map → version-GZJOU2CV.js.map} +0 -0
- /package/dist/{whoami-MIJFO4MW.js.map → whoami-GKPGPZ3B.js.map} +0 -0
package/dist/deploy-XFZBJJWP.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import{a as ee}from"./chunk-SX5LO3XQ.js";import{a as te}from"./chunk-XKYYKHP4.js";import{b as H,c as R,e as Q,k as y,p as Z}from"./chunk-M6L2X3GX.js";import{a as J,c as q,d as _,j as X,n as W,o as K}from"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import{b as Y}from"./chunk-WNAYBYSG.js";import"./chunk-J2OYMAMD.js";import"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{a as A,c as O,g as z,u as w}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{b as i,ca as G,d as F,fa as j,ha as l,ja as t,n as V}from"./chunk-24OT7GHO.js";import"./chunk-GFQYFEEH.js";import{a as m,h as M}from"./chunk-7DYQUG5M.js";M();import le from"node:assert";var Re={...te,"--env":{type:String,alias:["-e","--environment","--from"]},"--allow-problems":{type:Boolean,alias:"--allow-issues"},"--allow-charges":{type:Boolean},"--allow-data-delete":{type:Boolean}},_e=m(n=>l`
|
|
2
|
-
Deploys your app to production.
|
|
3
|
-
|
|
4
|
-
This command first performs a sync to ensure that your local and environment directories
|
|
5
|
-
match, changes are tracked since last sync. If any conflicts are detected, they must be
|
|
6
|
-
resolved before deployment.
|
|
7
|
-
|
|
8
|
-
{gray Usage}
|
|
9
|
-
$ ggt deploy [options]
|
|
10
|
-
|
|
11
|
-
{gray Options}
|
|
12
|
-
-a, --app <app_name> Selects a specific app to deploy. Default set on ".gadget/sync.json"
|
|
13
|
-
--from, -e, --env <env_name> Selects a specific environment to sync and deploy from. Default set on ".gadget/sync.json"
|
|
14
|
-
--force Deploys by discarding any changes made to the environment directory since last sync
|
|
15
|
-
--allow-different-directory Deploys from any local directory with existing files, even if the ".gadget/sync.json" file is missing
|
|
16
|
-
--allow-different-app Deploys a different app using the --app command, instead of the one specified in the “.gadget/sync.json” file
|
|
17
|
-
--allow-problems Deploys despite any existing issues found in the app (gelly errors, typescript errors etc.)
|
|
18
|
-
--allow-data-delete Deploys even if it results in the deletion of data in production
|
|
19
|
-
--allow-charges Deploys even if it results in additional charges to your plan
|
|
20
|
-
|
|
21
|
-
{gray Examples}
|
|
22
|
-
Deploys code from the staging environment of a myBlog
|
|
23
|
-
{cyanBright $ ggt deploy -a myBlog -from staging}
|
|
24
|
-
`,"usage"),Pe=m(async(n,r)=>{let ne=await K(process.cwd()),a=await W.loadOrInit(n,{command:"deploy",args:r,directory:ne});t({ensureEmptyLineAbove:!0,content:`Deploying ${a.environment.name} to ${A(a.environment.application.primaryDomain,`https://${a.environment.application.primaryDomain}/`)}`});let T=new Z(a),p=await T.hashes(n);if(!p.inSync&&(p.localChangesToPush.size>0||!p.onlyDotGadgetFilesChanged)){if(await T.print(n,{hashes:p}),!r["--force"])if(t({ensureEmptyLineAbove:!0,content:"Your environment's files must match your local files before you can deploy."}),G.isInteractive||F.testLike){let s;switch(!0){case p.bothChanged:s=l`Would you like to push your local changes and {underline discard your environment's} changes now?`;break;case p.localChangesToPush.size>0:s=l`Would you like to push your local changes now?`;break;case p.environmentChanges.size>0:s=l`Do you want to {underline discard your environment's} changes now?`;break;default:ee("no changes to push or discard")}await w(s)}else t({ensureEmptyLineAbove:!0,content:"Assuming you want to push your local files now."});await T.push(n,{command:"deploy",hashes:p})}let I={localFilesVersion:String(a.filesVersion),force:r["--allow-problems"],allowDeletedData:r["--allow-data-delete"],allowCharges:r["--allow-charges"]},E,f=e.NOT_STARTED,B=!1,v=a.edit.subscribe({subscription:Q,variables:I,onError:m(async s=>{if(n.log.error("failed to deploy",{error:s}),E?.fail(P(a,f)+" "+y()),V(s.cause)){let c=s.cause[0];if(le(c,"expected graphqlError to be defined"),c.extensions)switch(!0){case c.extensions.requiresUpgrade:t({ensureEmptyLineAbove:!0,content:c.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),process.exit(1);break;case c.extensions.requiresAdditionalCharge:t({ensureEmptyLineAbove:!0,content:c.message.replace(/GGT_PAYMENT_REQUIRED:?\s*/,"")}),await w({ensureEmptyLineAbove:!0,content:"Do you want to continue?"}),v.resubscribe({...I,allowCharges:!0});return}}await O(n,s)},"onError"),onData:m(async({publishStatus:s})=>{if(!s){n.log.warn("received empty publish status");return}let{publishStarted:c,progress:D,issues:N,status:g,deletedModelsAndFields:se}=s,C=N.length>0,{deletedModels:U,deletedModelFields:$}=se??{deletedModels:[],deletedModelFields:[]},x=U.length>0||$.length>0;if(!B&&(C||x)){B=!0;let d=N.filter(u=>u.severity===J.Fatal);if(d.length>0&&await O(n,new X(_(d))),C&&(t({ensureEmptyLineAbove:!0,content:l`{bold.yellow !} {bold Issues found in your development app}`}),q({problems:_(N)})),x){t({ensureEmptyLineAbove:!0,content:l`{bold.yellow !} {bold Data deleted on deploy}`});let u=i.blueBright("updated"),b=i.redBright("deleted"),S=[];U.forEach(o=>{S.push({symbol:R,name:i.redBright(o),action:b,indent:0})}),$.forEach(({modelIdentifier:o,fields:h})=>{S.push({symbol:H,name:i.blueBright(o),action:u,indent:0}),h.forEach(L=>{S.push({symbol:R,name:i.redBright(L),action:b,indent:2})})});let re=S.reduce((o,h)=>Math.max(o,h.name.length),0),ae=S.reduce((o,h)=>Math.max(o,h.indent),0),k=2;t({ensureEmptyLineAbove:!0,content:i.gray("These changes will be applied to production based on the app you're deploying.")});for(let o of S){let h=" ".repeat(o.indent*k),L=" ".repeat(re-o.name.length+2),ie=" ".repeat((ae-o.indent)*k);t({ensureEmptyLineAbove:!1,content:j(`${h}${o.symbol} ${o.name}${L}${ie}${o.action}`,6)})}}if(!c)await w("Do you want to continue?"),v.resubscribe({...I,force:!0,allowDeletedData:!0});else{let u=r["--allow-data-delete"],b=r["--allow-problems"];if(!u&&!b)throw new z("expected --allow-data-delete or --allow-problems to be true");b&&t(l`Deploying regardless of problems because "${i.gray("--allow-problems")}" was passed.`),u&&t(l`Deploying regardless of deleted data because "${i.gray("--allow-data-delete")}" was passed.`)}return}if(g?.code==="Errored"){E?.fail(P(a,f)+" "+y()),g.message&&t({ensureEmptyLineAbove:!0,content:i.red(g.message)}),g.output&&t({ensureEmptyLineAbove:!0,content:l`${A("Check logs",g.output)}`});return}if(D===e.COMPLETED){E?.succeed(oe(a,f));let d=i.green("Deploy successful!");g?.output&&(d+=` ${A("Check logs",g.output)}.`),t({ensureEmptyLineAbove:!0,content:d});return}if(D!==f){let d=P(a,D);if(d!==E?.text){E?.succeed(oe(a,f));let u=f===e.NOT_STARTED||!G.isInteractive;E=Y({ensureEmptyLineAbove:u,content:d})}f=D}},"onData"),onComplete:m(()=>{v.unsubscribe()},"onComplete")})},"run"),e=Object.freeze({NOT_STARTED:"NOT_STARTED",STARTING:"STARTING",BUILDING_ASSETS:"BUILDING_ASSETS",UPLOADING_ASSETS:"UPLOADING_ASSETS",CONVERGING_STORAGE:"CONVERGING_STORAGE",PUBLISHING_TREE:"PUBLISHING_TREE",RELOADING_SANDBOX:"RELOADING_SANDBOX",COMPLETED:"COMPLETED"}),P=m((n,r)=>{switch(r){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return"Building frontend assets.";case e.CONVERGING_STORAGE:return"Setting up database.";case e.PUBLISHING_TREE:return`Copying ${n.environment.name}.`;case e.RELOADING_SANDBOX:return"Restarting app.";case e.COMPLETED:return"Deploy complete!";default:return"Unknown step."}},"stepToSpinnerStart"),oe=m((n,r)=>{switch(r){case e.NOT_STARTED:case e.STARTING:case e.BUILDING_ASSETS:case e.UPLOADING_ASSETS:return`Built frontend assets. ${y()}`;case e.CONVERGING_STORAGE:return`Setup database. ${y()}`;case e.PUBLISHING_TREE:return`Copied ${n.environment.name}. ${y()}`;case e.RELOADING_SANDBOX:return`Restarted app. ${y()}`;case e.COMPLETED:return"Deploy successful!";default:return`Completed unknown step. ${y()}`}},"stepToSpinnerEnd");export{e as AppDeploymentSteps,Re as args,Pe as run,oe as stepToSpinnerEnd,P as stepToSpinnerStart,_e as usage};
|
|
25
|
-
//# sourceMappingURL=deploy-XFZBJJWP.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/commands/deploy.ts"],
|
|
4
|
-
"sourcesContent": ["import chalk from \"chalk\";\nimport indentString from \"indent-string\";\nimport assert from \"node:assert\";\nimport terminalLink from \"terminal-link\";\nimport { PUBLISH_STATUS_SUBSCRIPTION } from \"../services/app/edit/operation.js\";\nimport { type Run, type Usage } from \"../services/command/command.js\";\nimport { env } from \"../services/config/env.js\";\nimport { deletedSymbol, updatedSymbol } from \"../services/filesync/changes.js\";\nimport { DeployDisallowedError } from \"../services/filesync/error.js\";\nimport { FileSync } from \"../services/filesync/filesync.js\";\nimport { SyncJson, loadSyncJsonDirectory } from \"../services/filesync/sync-json.js\";\nimport { confirm } from \"../services/output/confirm.js\";\nimport { output } from \"../services/output/output.js\";\nimport { println } from \"../services/output/print.js\";\nimport { ProblemSeverity, printProblems, publishIssuesToProblems } from \"../services/output/problems.js\";\nimport { UnexpectedError, reportErrorAndExit } from \"../services/output/report.js\";\nimport { spin, type spinner } from \"../services/output/spinner.js\";\nimport { sprint } from \"../services/output/sprint.js\";\nimport { ts } from \"../services/output/timestamp.js\";\nimport { unreachable } from \"../services/util/assert.js\";\nimport { isGraphQLErrors } from \"../services/util/is.js\";\nimport { args as PushArgs } from \"./push.js\";\n\nexport type DeployArgs = typeof args;\n\nexport const args = {\n ...PushArgs,\n \"--env\": { type: String, alias: [\"-e\", \"--environment\", \"--from\"] },\n \"--allow-problems\": { type: Boolean, alias: \"--allow-issues\" },\n \"--allow-charges\": { type: Boolean },\n \"--allow-data-delete\": { type: Boolean },\n};\n\nexport const usage: Usage = (_ctx) => {\n return sprint`\n Deploys your app to production.\n\n This command first performs a sync to ensure that your local and environment directories\n match, changes are tracked since last sync. If any conflicts are detected, they must be\n resolved before deployment.\n\n {gray Usage}\n $ ggt deploy [options]\n\n {gray Options}\n -a, --app <app_name> Selects a specific app to deploy. Default set on \".gadget/sync.json\"\n --from, -e, --env <env_name> Selects a specific environment to sync and deploy from. Default set on \".gadget/sync.json\"\n --force Deploys by discarding any changes made to the environment directory since last sync\n --allow-different-directory Deploys from any local directory with existing files, even if the \".gadget/sync.json\" file is missing\n --allow-different-app Deploys a different app using the --app command, instead of the one specified in the \u201C.gadget/sync.json\u201D file\n --allow-problems Deploys despite any existing issues found in the app (gelly errors, typescript errors etc.)\n --allow-data-delete Deploys even if it results in the deletion of data in production\n --allow-charges Deploys even if it results in additional charges to your plan\n\n {gray Examples}\n Deploys code from the staging environment of a myBlog\n {cyanBright $ ggt deploy -a myBlog -from staging}\n`;\n};\n\nexport const run: Run<DeployArgs> = async (ctx, args) => {\n const directory = await loadSyncJsonDirectory(process.cwd());\n const syncJson = await SyncJson.loadOrInit(ctx, { command: \"deploy\", args, directory });\n\n println({\n ensureEmptyLineAbove: true,\n content: `Deploying ${syncJson.environment.name} to ${terminalLink(syncJson.environment.application.primaryDomain, `https://${syncJson.environment.application.primaryDomain}/`)}`,\n });\n\n const filesync = new FileSync(syncJson);\n const hashes = await filesync.hashes(ctx);\n if (!hashes.inSync && (hashes.localChangesToPush.size > 0 || !hashes.onlyDotGadgetFilesChanged)) {\n // the following is true:\n // 1. our local files don't match our environment's files\n // 2. we have local changes to push or non .gadget/ files have changed on our environment\n // therefor, we need to push before we can deploy\n await filesync.print(ctx, { hashes });\n\n if (!args[\"--force\"]) {\n // they didn't pass --force, so we need to ask them if they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Your environment's files must match your local files before you can deploy.\",\n });\n\n if (output.isInteractive || env.testLike) {\n // we're interactive, so ask them what they want to do\n let content: string;\n // eslint-disable-next-line max-depth\n switch (true) {\n case hashes.bothChanged:\n content = sprint`Would you like to push your local changes and {underline discard your environment's} changes now?`;\n break;\n case hashes.localChangesToPush.size > 0:\n content = sprint`Would you like to push your local changes now?`;\n break;\n case hashes.environmentChanges.size > 0:\n content = sprint`Do you want to {underline discard your environment's} changes now?`;\n break;\n default:\n unreachable(\"no changes to push or discard\");\n }\n\n await confirm(content);\n } else {\n // we're not interactive, so we're likely in a CI/CD environment\n // assume they want to push\n println({\n ensureEmptyLineAbove: true,\n content: \"Assuming you want to push your local files now.\",\n });\n }\n }\n\n await filesync.push(ctx, { command: \"deploy\", hashes });\n }\n\n const variables = {\n localFilesVersion: String(syncJson.filesVersion),\n force: args[\"--allow-problems\"],\n allowDeletedData: args[\"--allow-data-delete\"],\n allowCharges: args[\"--allow-charges\"],\n };\n\n let spinner: spinner | undefined;\n let currentStep: AppDeploymentSteps = AppDeploymentSteps.NOT_STARTED;\n let printedProblems = false;\n\n const subscription = syncJson.edit.subscribe({\n subscription: PUBLISH_STATUS_SUBSCRIPTION,\n variables,\n onError: async (error) => {\n ctx.log.error(\"failed to deploy\", { error });\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n if (isGraphQLErrors(error.cause)) {\n const graphqlError = error.cause[0];\n assert(graphqlError, \"expected graphqlError to be defined\");\n\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- TODO: extensions is typed as never undefined, but it can be.\n if (graphqlError.extensions) {\n switch (true) {\n case graphqlError.extensions[\"requiresUpgrade\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n process.exit(1);\n break;\n case graphqlError.extensions[\"requiresAdditionalCharge\"]:\n println({ ensureEmptyLineAbove: true, content: graphqlError.message.replace(/GGT_PAYMENT_REQUIRED:?\\s*/, \"\") });\n await confirm({ ensureEmptyLineAbove: true, content: \"Do you want to continue?\" });\n subscription.resubscribe({ ...variables, allowCharges: true });\n return;\n }\n }\n }\n\n await reportErrorAndExit(ctx, error);\n },\n onData: async ({ publishStatus }): Promise<void> => {\n if (!publishStatus) {\n ctx.log.warn(\"received empty publish status\");\n return;\n }\n\n const { publishStarted, progress: step, issues, status, deletedModelsAndFields } = publishStatus;\n const hasIssues = issues.length > 0;\n\n const { deletedModels, deletedModelFields } = deletedModelsAndFields ?? { deletedModels: [], deletedModelFields: [] };\n const hasDataLoss = deletedModels.length > 0 || deletedModelFields.length > 0;\n\n if (!printedProblems && (hasIssues || hasDataLoss)) {\n printedProblems = true;\n\n const fatalIssues = issues.filter((issue) => issue.severity === ProblemSeverity.Fatal);\n if (fatalIssues.length > 0) {\n await reportErrorAndExit(ctx, new DeployDisallowedError(publishIssuesToProblems(fatalIssues)));\n }\n\n if (hasIssues) {\n println({ ensureEmptyLineAbove: true, content: sprint`{bold.yellow !} {bold Issues found in your development app}` });\n printProblems({ problems: publishIssuesToProblems(issues) });\n }\n\n if (hasDataLoss) {\n println({\n ensureEmptyLineAbove: true,\n content: sprint`{bold.yellow !} {bold Data deleted on deploy}`,\n });\n\n const updated = chalk.blueBright(\"updated\");\n const deleted = chalk.redBright(\"deleted\");\n\n const rows: { symbol: string; name: string; action: string; indent: number }[] = [];\n\n deletedModels.forEach((model: string) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(model), action: deleted, indent: 0 });\n });\n\n deletedModelFields.forEach(({ modelIdentifier, fields }) => {\n rows.push({ symbol: updatedSymbol, name: chalk.blueBright(modelIdentifier), action: updated, indent: 0 });\n fields.forEach((field) => {\n rows.push({ symbol: deletedSymbol, name: chalk.redBright(field), action: deleted, indent: 2 });\n });\n });\n\n const longestNameLength = rows.reduce((longest, row) => Math.max(longest, row.name.length), 0);\n const longestIndent = rows.reduce((longest, row) => Math.max(longest, row.indent), 0);\n const indentSize = 2;\n\n println({\n ensureEmptyLineAbove: true,\n content: chalk.gray(\"These changes will be applied to production based on the app you're deploying.\"),\n });\n for (const row of rows) {\n const indentation = \" \".repeat(row.indent * indentSize);\n const namePadding = \" \".repeat(longestNameLength - row.name.length + 2);\n const actionPadding = \" \".repeat((longestIndent - row.indent) * indentSize);\n println({\n ensureEmptyLineAbove: false,\n content: indentString(`${indentation}${row.symbol} ${row.name}${namePadding}${actionPadding}${row.action}`, 6),\n });\n }\n }\n\n if (!publishStarted) {\n await confirm(\"Do you want to continue?\");\n subscription.resubscribe({ ...variables, force: true, allowDeletedData: true });\n } else {\n const allowDataDelete = args[\"--allow-data-delete\"];\n const allowProblems = args[\"--allow-problems\"];\n\n if (!allowDataDelete && !allowProblems) {\n throw new UnexpectedError(\"expected --allow-data-delete or --allow-problems to be true\");\n }\n\n if (allowProblems) {\n println(sprint`Deploying regardless of problems because \"${chalk.gray(\"--allow-problems\")}\" was passed.`);\n }\n\n if (allowDataDelete) {\n println(sprint`Deploying regardless of deleted data because \"${chalk.gray(\"--allow-data-delete\")}\" was passed.`);\n }\n }\n\n return;\n }\n\n if (status?.code === \"Errored\") {\n spinner?.fail(stepToSpinnerStart(syncJson, currentStep) + \" \" + ts());\n\n if (status.message) {\n println({ ensureEmptyLineAbove: true, content: chalk.red(status.message) });\n }\n if (status.output) {\n println({ ensureEmptyLineAbove: true, content: sprint`${terminalLink(\"Check logs\", status.output)}` });\n }\n return;\n }\n\n if (step === AppDeploymentSteps.COMPLETED) {\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n let content = chalk.green(\"Deploy successful!\");\n if (status?.output) {\n content += ` ${terminalLink(\"Check logs\", status.output)}.`;\n }\n\n println({ ensureEmptyLineAbove: true, content });\n return;\n }\n\n if (step !== currentStep) {\n const spinnerText = stepToSpinnerStart(syncJson, step);\n if (spinnerText !== spinner?.text) {\n // stop the current spinner, if any, and start a new one\n spinner?.succeed(stepToSpinnerEnd(syncJson, currentStep));\n\n const ensureEmptyLineAbove = currentStep === AppDeploymentSteps.NOT_STARTED || !output.isInteractive;\n spinner = spin({ ensureEmptyLineAbove, content: spinnerText });\n }\n\n currentStep = step as AppDeploymentSteps;\n }\n },\n onComplete: () => {\n subscription.unsubscribe();\n },\n });\n};\n\nexport const AppDeploymentSteps = Object.freeze({\n NOT_STARTED: \"NOT_STARTED\",\n STARTING: \"STARTING\",\n BUILDING_ASSETS: \"BUILDING_ASSETS\",\n UPLOADING_ASSETS: \"UPLOADING_ASSETS\",\n CONVERGING_STORAGE: \"CONVERGING_STORAGE\",\n PUBLISHING_TREE: \"PUBLISHING_TREE\",\n RELOADING_SANDBOX: \"RELOADING_SANDBOX\",\n COMPLETED: \"COMPLETED\",\n});\n\nexport type AppDeploymentSteps = (typeof AppDeploymentSteps)[keyof typeof AppDeploymentSteps];\n\nexport const stepToSpinnerStart = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return \"Building frontend assets.\";\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return \"Setting up database.\";\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copying ${syncJson.environment.name}.`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return \"Restarting app.\";\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy complete!\";\n default:\n return \"Unknown step.\";\n }\n};\n\nexport const stepToSpinnerEnd = (syncJson: SyncJson, step: string): string => {\n switch (step) {\n case AppDeploymentSteps.NOT_STARTED:\n case AppDeploymentSteps.STARTING:\n case AppDeploymentSteps.BUILDING_ASSETS:\n case AppDeploymentSteps.UPLOADING_ASSETS:\n return `Built frontend assets. ${ts()}`;\n case AppDeploymentSteps.CONVERGING_STORAGE:\n return `Setup database. ${ts()}`;\n case AppDeploymentSteps.PUBLISHING_TREE:\n return `Copied ${syncJson.environment.name}. ${ts()}`;\n case AppDeploymentSteps.RELOADING_SANDBOX:\n return `Restarted app. ${ts()}`;\n case AppDeploymentSteps.COMPLETED:\n return \"Deploy successful!\";\n default:\n return `Completed unknown step. ${ts()}`;\n }\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["init_cjs", "assert", "args", "usage", "__name", "_ctx", "sprint", "run", "ctx", "directory", "loadSyncJsonDirectory", "syncJson", "SyncJson", "println", "terminalLink", "filesync", "FileSync", "hashes", "output", "env", "content", "unreachable", "confirm", "variables", "spinner", "currentStep", "AppDeploymentSteps", "printedProblems", "subscription", "PUBLISH_STATUS_SUBSCRIPTION", "error", "stepToSpinnerStart", "ts", "isGraphQLErrors", "graphqlError", "assert", "reportErrorAndExit", "publishStatus", "publishStarted", "step", "issues", "status", "deletedModelsAndFields", "hasIssues", "deletedModels", "deletedModelFields", "hasDataLoss", "fatalIssues", "issue", "ProblemSeverity", "DeployDisallowedError", "publishIssuesToProblems", "printProblems", "updated", "source_default", "deleted", "rows", "model", "deletedSymbol", "modelIdentifier", "fields", "updatedSymbol", "field", "longestNameLength", "longest", "row", "longestIndent", "indentSize", "indentation", "namePadding", "actionPadding", "indentString", "allowDataDelete", "allowProblems", "UnexpectedError", "stepToSpinnerEnd", "spinnerText", "ensureEmptyLineAbove", "spin"]
|
|
7
|
-
}
|
package/dist/dev-GG6TU3DJ.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import{a as Nn}from"./chunk-QXWICGG6.js";import{a as nt}from"./chunk-SX5LO3XQ.js";import{a as it,d as vn,n as K,o as rr,p as or}from"./chunk-M6L2X3GX.js";import{f as Xt,m as ir,n as nr,o as sr}from"./chunk-YU6P3ESA.js";import"./chunk-JSGXXXFU.js";import{b as tr}from"./chunk-WNAYBYSG.js";import"./chunk-J2OYMAMD.js";import{a as er}from"./chunk-JBY5A44K.js";import"./chunk-HN3YKQ3C.js";import{E as Zt,G as Qt,c as Yt,i as En}from"./chunk-L5H5T2T6.js";import"./chunk-X47UA3VR.js";import{b as Vt}from"./chunk-XGQQOMPO.js";import"./chunk-OIVNACS7.js";import{M as rt,T as Kt,b as Ht,ca as je,ha as B,ia as zt,ja as Jt,p as $t}from"./chunk-24OT7GHO.js";import{a as gn}from"./chunk-GFQYFEEH.js";import{a as s,b as v,c as q,d as b,e as yn,f as Be,g as wn,h as c}from"./chunk-7DYQUG5M.js";var Cr=b(Ee=>{"use strict";c();Object.defineProperty(Ee,"__esModule",{value:!0});Ee.sync=Ee.isexe=void 0;var Rn=v("fs"),bn=v("fs/promises"),kn=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar(await(0,bn.stat)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");Ee.isexe=kn;var Ln=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Ar((0,Rn.statSync)(e),t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");Ee.sync=Ln;var Ar=s((e,t)=>e.isFile()&&On(e,t),"checkStat"),On=s((e,t)=>{let r=t.uid??process.getuid?.(),i=t.groups??process.getgroups?.()??[],n=t.gid??process.getgid?.()??i[0];if(r===void 0||n===void 0)throw new Error("cannot get uid or gid");let o=new Set([n,...i]),a=e.mode,f=e.uid,l=e.gid,u=parseInt("100",8),h=parseInt("010",8),g=parseInt("001",8),p=u|h;return!!(a&g||a&h&&o.has(l)||a&u&&f===r||a&p&&r===0)},"checkMode")});var Rr=b(ve=>{"use strict";c();Object.defineProperty(ve,"__esModule",{value:!0});ve.sync=ve.isexe=void 0;var qn=v("fs"),Fn=v("fs/promises"),Un=s(async(e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr(await(0,Fn.stat)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"isexe");ve.isexe=Un;var Pn=s((e,t={})=>{let{ignoreErrors:r=!1}=t;try{return Tr((0,qn.statSync)(e),e,t)}catch(i){let n=i;if(r||n.code==="EACCES")return!1;throw n}},"sync");ve.sync=Pn;var Mn=s((e,t)=>{let{pathExt:r=process.env.PATHEXT||""}=t,i=r.split(";");if(i.indexOf("")!==-1)return!0;for(let n=0;n<i.length;n++){let o=i[n].toLowerCase(),a=e.substring(e.length-o.length).toLowerCase();if(o&&a===o)return!0}return!1},"checkPathExt"),Tr=s((e,t,r)=>e.isFile()&&Mn(t,r),"checkStat")});var kr=b(br=>{"use strict";c();Object.defineProperty(br,"__esModule",{value:!0})});var Pr=b(R=>{"use strict";c();var Lr=R&&R.__createBinding||(Object.create?function(e,t,r,i){i===void 0&&(i=r);var n=Object.getOwnPropertyDescriptor(t,r);(!n||("get"in n?!t.__esModule:n.writable||n.configurable))&&(n={enumerable:!0,get:s(function(){return t[r]},"get")}),Object.defineProperty(e,i,n)}:function(e,t,r,i){i===void 0&&(i=r),e[i]=t[r]}),Wn=R&&R.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Or=R&&R.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var r in e)r!=="default"&&Object.prototype.hasOwnProperty.call(e,r)&&Lr(t,e,r);return Wn(t,e),t},Gn=R&&R.__exportStar||function(e,t){for(var r in e)r!=="default"&&!Object.prototype.hasOwnProperty.call(t,r)&&Lr(t,e,r)};Object.defineProperty(R,"__esModule",{value:!0});R.sync=R.isexe=R.posix=R.win32=void 0;var qr=Or(Cr());R.posix=qr;var Fr=Or(Rr());R.win32=Fr;Gn(kr(),R);var Bn=process.env._ISEXE_TEST_PLATFORM_||process.platform,Ur=Bn==="win32"?Fr:qr;R.isexe=Ur.isexe;R.sync=Ur.sync});var Jr=b((zc,zr)=>{c();var{isexe:jn,sync:Hn}=Pr(),{join:$n,delimiter:Kn,sep:Mr,posix:Wr}=v("path"),Gr=process.platform==="win32",Br=new RegExp(`[${Wr.sep}${Mr===Wr.sep?"":Mr}]`.replace(/(\\)/g,"\\$1")),zn=new RegExp(`^\\.${Br.source}`),jr=s(e=>Object.assign(new Error(`not found: ${e}`),{code:"ENOENT"}),"getNotFoundError"),Hr=s((e,{path:t=process.env.PATH,pathExt:r=process.env.PATHEXT,delimiter:i=Kn})=>{let n=e.match(Br)?[""]:[...Gr?[process.cwd()]:[],...(t||"").split(i)];if(Gr){let o=r||[".EXE",".CMD",".BAT",".COM"].join(i),a=o.split(i).flatMap(f=>[f,f.toLowerCase()]);return e.includes(".")&&a[0]!==""&&a.unshift(""),{pathEnv:n,pathExt:a,pathExtExe:o}}return{pathEnv:n,pathExt:[""]}},"getPathInfo"),$r=s((e,t)=>{let r=/^".*"$/.test(e)?e.slice(1,-1):e;return(!r&&zn.test(t)?t.slice(0,2):"")+$n(r,t)},"getPathPart"),Kr=s(async(e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(await jn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"which"),Jn=s((e,t={})=>{let{pathEnv:r,pathExt:i,pathExtExe:n}=Hr(e,t),o=[];for(let a of r){let f=$r(a,e);for(let l of i){let u=f+l;if(Hn(u,{pathExt:n,ignoreErrors:!0})){if(!t.all)return u;o.push(u)}}}if(t.all&&o.length)return o;if(t.nothrow)return null;throw jr(e)},"whichSync");zr.exports=Kr;Kr.sync=Jn});var Yr=b(Ke=>{c();(function(){var e;e=s(function(t,r,i){var n,o;for(o="";t.length>0;)n=t.match(r),n?(o+=t.slice(0,n.index),o+=i(n),t=t.slice(n.index+n[0].length)):(o+=t,t="");return o},"scan"),Ke.split=function(t){var r,i;return t==null&&(t=""),i=[],r="",e(t,/\s*(?:([^\s\\\'\"]+)|'((?:[^\'\\]|\\.)*)'|"((?:[^\"\\]|\\.)*)"|(\\.?)|(\S))(\s|$)?/,function(n){var o,a,f,l,u,h,g;if(l=n[0],g=n[1],h=n[2],o=n[3],a=n[4],f=n[5],u=n[6],f!=null)throw new Error("Unmatched quote");if(r+=g||(h||o||a).replace(/\\(?=.)/,""),u!=null)return i.push(r),r=""}),r&&i.push(r),i},Ke.escape=function(t){return t==null&&(t=""),t==null?"''":t.replace(/([^A-Za-z0-9_\-.,:\/@\n])/g,"\\$1").replace(/\n/g,`'
|
|
2
|
-
'`)}}).call(Ke)});var Zr=b((sf,Xr)=>{"use strict";c();var Vr=v("fs"),Nt;function Yn(){try{return Vr.statSync("/.dockerenv"),!0}catch{return!1}}s(Yn,"hasDockerEnv");function Vn(){try{return Vr.readFileSync("/proc/self/cgroup","utf8").includes("docker")}catch{return!1}}s(Vn,"hasDockerCGroup");Xr.exports=()=>(Nt===void 0&&(Nt=Yn()||Vn()),Nt)});var ti=b((cf,St)=>{"use strict";c();var Xn=v("os"),Zn=v("fs"),Qr=Zr(),ei=s(()=>{if(process.platform!=="linux")return!1;if(Xn.release().toLowerCase().includes("microsoft"))return!Qr();try{return Zn.readFileSync("/proc/version","utf8").toLowerCase().includes("microsoft")?!Qr():!1}catch{return!1}},"isWsl");process.env.__IS_WSL_TEST__?St.exports=ei:St.exports=ei()});var de=b((uf,A)=>{c();var Qn=Yr(),ze=v("child_process"),xt=Nn(),es=ti(),ts=v("path"),rs=v("url"),he=v("os"),_t=v("fs"),is=v("net"),ns=1024;function si(e){return JSON.parse(JSON.stringify(e))}s(si,"clone");A.exports.clone=si;var ss=s(function(e){return typeof e=="string"?e.replace(/(["$`\\])/g,"\\$1"):e},"escapeQuotes"),os=s(function(e,t){return e.indexOf(t)!==-1},"inArray"),ri={u:"urgency",urgency:"urgency",t:"expire-time",time:"expire-time",timeout:"expire-time",e:"expire-time",expire:"expire-time","expire-time":"expire-time",i:"icon",icon:"icon",c:"category",category:"category",subtitle:"category",h:"hint",hint:"hint",a:"app-name","app-name":"app-name"};A.exports.command=function(e,t,r){return e=Qn.escape(e),process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (command):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.exec(e+" "+t.join(" "),function(i,n,o){if(i)return r(i);r(o,n)})};A.exports.fileCommand=function(e,t,r){return process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (fileCommand):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.execFile(e,t,function(i,n,o){if(i)return r(i,n);r(o,n)})};A.exports.fileCommandJson=function(e,t,r){return process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (fileCommandJson):"),console.info("[notifier path]",e),console.info("[notifier options]",t.join(" "))),ze.execFile(e,t,function(i,n,o){if(i)return r(i,n);if(!n)return r(i,{});try{let a=JSON.parse(n);r(o||null,a)}catch(a){r(a,n)}})};A.exports.immediateFileCommand=function(e,t,r){process.env.DEBUG&&process.env.DEBUG.indexOf("notifier")!==-1&&(console.info("node-notifier debug info (notifier):"),console.info("[notifier path]",e)),as(e,function(i,n){if(!n)return r(new Error("Notifier ("+e+") not found on system."));ze.execFile(e,t),r()})};function as(e,t){return _t.stat(e,function(r,i){return r?ts.extname(e)?t(r,!1):_t.stat(e+".exe",function(n,o){if(n)return t(n,!1);t(n,o.isFile())}):t(r,i.isFile())})}s(as,"notifierExists");var Je=s(function(e){return e.appIcon&&(e.icon=e.appIcon,delete e.appIcon),e},"mapAppIcon"),De=s(function(e){return e.text&&(e.message=e.text,delete e.text),e},"mapText"),oi=s(function(e){return e.i&&(e.icon=e.i,delete e.i),e},"mapIconShorthand");A.exports.mapToNotifySend=function(e){e=Je(e),e=De(e),e.timeout===!1&&delete e.timeout,e.wait===!0&&(e["expire-time"]=5);for(let t in e)t==="message"||t==="title"||e.hasOwnProperty(t)&&ri[t]!==t&&(e[ri[t]]=e[t],delete e[t]);return typeof e["expire-time"]>"u"?e["expire-time"]=10*1e3:typeof e["expire-time"]=="number"&&(e["expire-time"]=e["expire-time"]*1e3),e};A.exports.mapToGrowl=function(e){if(e=Je(e),e=oi(e),e=De(e),e.icon&&!Buffer.isBuffer(e.icon))try{e.icon=_t.readFileSync(e.icon)}catch{}return e};A.exports.mapToMac=function(e){return e=oi(e),e=De(e),e.icon&&(e.appIcon=e.icon,delete e.icon),e.sound===!0&&(e.sound="Bottle"),e.sound===!1&&delete e.sound,e.sound&&e.sound.indexOf("Notification.")===0&&(e.sound="Bottle"),e.wait===!0&&(e.timeout||(e.timeout=5),delete e.wait),!e.wait&&!e.timeout&&(e.timeout===!1?delete e.timeout:e.timeout=10),e.json=!0,e};function It(e){return Object.prototype.toString.call(e)==="[object Array]"}s(It,"isArray");A.exports.isArray=It;function cs(){}s(cs,"noop");A.exports.actionJackerDecorator=function(e,t,r,i){if(t=si(t),r=r||cs,typeof r!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof r);return function(n,o){let a=o,f={};if(a&&typeof a=="object"&&(f=a,a=a.activationType),a&&(a=a.toLowerCase().trim(),a.match(/^activate|clicked$/)&&(a="activate"),a.match(/^timedout$/)&&(a="timeout")),r.apply(e,[n,a,f]),!i||!a)return;let l=i(a);l&&e.emit(l,e,t,f)}};A.exports.constructArgumentList=function(e,t){let r=[];t=t||{};let i=t.initial||[],n=t.keyExtra||"",o=t.allowedArguments||[],a=t.noEscape!==void 0,f=t.allowedArguments!==void 0,l=!!t.explicitTrue,u=!!t.keepNewlines,h=t.wrapper===void 0?'"':t.wrapper,g=s(function p(d){return It(d)?ii(d.map(p).join(",")):(a||(d=ss(d)),typeof d=="string"&&!u&&(d=ii(d)),h+d+h)},"escapeFn");i.forEach(function(p){r.push(g(p))});for(let p in e)if(e.hasOwnProperty(p)&&(!f||os(o,p)))if(l&&e[p]===!0)r.push("-"+n+p);else{if(l&&e[p]===!1)continue;r.push("-"+n+p,g(e[p]))}return r};function ii(e){let t=process.platform==="win32"?"\\r\\n":"\\n";return e.replace(/\r?\n/g,t)}s(ii,"removeNewLines");var fs=["t","m","b","tb","p","id","s","silent","appID","pid","pipeName","close","install"],ls="Notification.",ni="Notification.Default";A.exports.mapToWin8=function(e){e=Je(e),e=De(e),e.icon&&(/^file:\/+/.test(e.icon)?e.p=new rs.URL(e.icon).pathname.replace(/^\/(\w:\/)/,"$1").replace(/\//g,"\\"):e.p=e.icon,delete e.icon),e.message&&(e.m=e.message.replace(/\x1b/g,""),delete e.message),e.title&&(e.t=e.title,delete e.title),e.appName&&(e.appID=e.appName,delete e.appName),typeof e.remove<"u"&&(e.close=e.remove,delete e.remove),(e.quiet||e.silent)&&(e.silent=e.quiet||e.silent,delete e.quiet),typeof e.sound<"u"&&(e.s=e.sound,delete e.sound),e.s===!1&&(e.silent=!0,delete e.s),e.s&&e.silent&&delete e.s,e.s===!0&&(e.s=ni),e.s&&e.s.indexOf(ls)!==0&&(e.s=ni),e.actions&&It(e.actions)&&(e.b=e.actions.join(";"),delete e.actions);for(let t in e)e.hasOwnProperty(t)&&fs.indexOf(t)===-1&&delete e[t];return e};A.exports.mapToNotifu=function(e){return e=Je(e),e=De(e),e.icon&&(e.i=e.icon,delete e.icon),e.message&&(e.m=e.message,delete e.message),e.title&&(e.p=e.title,delete e.title),e.time&&(e.d=e.time,delete e.time),e.q!==!1?e.q=!0:delete e.q,e.quiet===!1&&(delete e.q,delete e.quiet),e.sound&&(delete e.q,delete e.sound),e.t&&(e.d=e.t,delete e.t),e.type&&(e.t=us(e.type),delete e.type),e};A.exports.isMac=function(){return he.type()==="Darwin"};A.exports.isMountainLion=function(){return he.type()==="Darwin"&&xt.satisfies(Dt(he.release()),">=12.0.0")};A.exports.isWin8=function(){return he.type()==="Windows_NT"&&xt.satisfies(Dt(he.release()),">=6.2.9200")};A.exports.isWSL=function(){return es};A.exports.isLessThanWin8=function(){return he.type()==="Windows_NT"&&xt.satisfies(Dt(he.release()),"<6.2.9200")};function Dt(e){return e.split(".").length===2&&(e+=".0"),e}s(Dt,"garanteeSemverFormat");function us(e){if(typeof e=="string"||e instanceof String){if(e.toLowerCase()==="info")return"info";if(e.toLowerCase()==="warn")return"warn";if(e.toLowerCase()==="error")return"error"}return"info"}s(us,"sanitizeNotifuTypeArgument");A.exports.createNamedPipe=e=>{let t=Buffer.alloc(ns);return new Promise(r=>{e.instance=is.createServer(i=>{i.on("data",n=>{t.write(n.toString())}),i.on("end",()=>{e.instance.close()})}),e.instance.listen(e.namedPipe,()=>{r(t)})})}});var hi=b((mf,ui)=>{c();var ai=v("os"),hs=vn(),Ae=de(),fi=v("events").EventEmitter,ds=v("util"),li="notify-send",Ye;ui.exports=Ce;function Ce(e){if(e=Ae.clone(e||{}),!(this instanceof Ce))return new Ce(e);this.options=e,fi.call(this)}s(Ce,"NotifySend");ds.inherits(Ce,fi);function ms(){}s(ms,"noop");function ps(e,t){if(e=Ae.clone(e||{}),t=t||ms,typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof t);if(typeof e=="string"&&(e={title:"node-notifier",message:e}),!e.message)return t(new Error("Message is required.")),this;if(ai.type()!=="Linux"&&!ai.type().match(/BSD$/))return t(new Error("Only supported on Linux and *BSD systems")),this;if(Ye===!1)return t(new Error("notify-send must be installed on the system.")),this;if(Ye||this.options.suppressOsdCheck)return ci(e,t),this;try{Ye=!!hs.sync(li),ci(e,t)}catch(r){return Ye=!1,t(r)}return this}s(ps,"notifyRaw");Object.defineProperty(Ce.prototype,"notify",{get:s(function(){return this._notify||(this._notify=ps.bind(this)),this._notify},"get")});var ys=["urgency","expire-time","icon","category","hint","app-name"];function ci(e,t){e=Ae.mapToNotifySend(e),e.title=e.title||"Node Notification:";let r=[e.title,e.message];delete e.title,delete e.message;let i=Ae.constructArgumentList(e,{initial:r,keyExtra:"-",allowedArguments:ys});Ae.command(li,i,t)}s(ci,"doNotification")});var At=b((wf,mi)=>{c();var ws=v("net"),di=!1;mi.exports=function(e,t){if(typeof t>"u"&&(t=e,e={}),di)return t(null,di);let r=e.port||23053,i=e.host||"localhost",n=ws.connect(r,i);n.setTimeout(100),n.once("connect",function(){n.end(),t(null,!0)}),n.once("error",function(){n.end(),t(null,!1)})}});var wi=b((Ef,yi)=>{c();var gs=v("net"),Es=v("crypto"),pi=v("util").format,vs=v("fs"),G=`\r
|
|
3
|
-
`;function me(e,t){t=t||{},this.type=e,this.host=t.host||"localhost",this.port=t.port||23053,this.request="GNTP/1.0 "+e+" NONE"+G,this.resources=[],this.attempts=0,this.maxAttempts=5}s(me,"GNTP");me.prototype.parseResp=function(e){var t={},r,i;return e=e.slice(0,e.indexOf(G+G)).split(G),r=e[0],i=e.slice(1),t.state=r.match(/-(OK|ERROR|CALLBACK)/)[0].slice(1),i.forEach(function(n){n=n.split(": "),t[n[0]]=n[1]}),t};me.prototype.retry=function(){var e=this,t=arguments;setTimeout(function(){e.send.apply(e,t)},750)};me.prototype.addResource=function(e){var t=Es.createHash("md5").update(e).digest("hex"),r="Identifier: "+t+G+"Length: "+e.length+G+G;return this.resources.push({header:r,file:e}),"x-growl-resource://"+t};me.prototype.add=function(e,t){t!==void 0&&(/-Icon/.test(e)&&!/^https?:\/\//.test(t)&&(/\.(png|gif|jpe?g)$/.test(t)?t=this.addResource(vs.readFileSync(t)):t instanceof Buffer&&(t=this.addResource(t))),this.request+=e+": "+t+G)};me.prototype.newline=function(){this.request+=G};me.prototype.send=function(e){var t=this,r=gs.connect(this.port,this.host),i="";e=e||function(){},this.attempts+=1,r.on("connect",function(){r.write(t.request),t.resources.forEach(function(n){r.write(n.header),r.write(n.file),r.write(G+G)})}),r.on("data",function(n){i+=n.toString(),i.slice(i.length-4)===G+G&&(i=t.parseResp(i),i.state==="ERROR"||i.state==="CALLBACK"?r.end():i="")}),r.on("end",function(){if(["200","401","402"].indexOf(i["Error-Code"])>=0)if(t.attempts<=t.maxAttempts)t.retry(e);else{var n='GNTP request to "%s:%d" failed with error code %s (%s)';e(new Error(pi(n,t.host,t.port,i["Error-Code"],i["Error-Description"])))}else e(void 0,i)}),r.on("error",function(){e(new Error(pi('Error while sending GNTP request to "%s:%d"',t.host,t.port))),r.destroy()})};yi.exports=me});var vi=b((Sf,Ei)=>{c();var gi=wi();function Te(){this.appname="Growly",this.notifications=void 0,this.labels=void 0,this.count=0,this.registered=!1,this.host=void 0,this.port=void 0}s(Te,"Growly");Te.prototype.getLabels=function(){return this.notifications.map(function(e){return e.label})};Te.prototype.setHost=function(e,t){this.host=e,this.port=t};Te.prototype.register=function(e,t,r,i){var n;typeof t=="object"&&(r=t,t=void 0),(r===void 0||!r.length)&&(r=[{label:"default",dispname:"Default Notification",enabled:!0}]),typeof arguments[arguments.length-1]=="function"?i=arguments[arguments.length-1]:i=s(function(){},"callback"),this.appname=e,this.notifications=r,this.labels=this.getLabels(),this.registered=!0,n=new gi("REGISTER",{host:this.host,port:this.port}),n.add("Application-Name",e),n.add("Application-Icon",t),n.add("Notifications-Count",r.length),n.newline(),r.forEach(function(o){o.enabled===void 0&&(o.enabled=!0),n.add("Notification-Name",o.label),n.add("Notification-Display-Name",o.dispname),n.add("Notification-Enabled",o.enabled?"True":"False"),n.add("Notification-Icon",o.icon),n.newline()}),n.send(i)};Te.prototype.notify=function(e,t,r){var i=this,n;if(!this.registered){this.register(this.appname,function(o){o&&console.log(o),i.notify.call(i,e,t,r)});return}t=t||{},typeof t=="function"&&(r=t,t={}),n=new gi("NOTIFY",{host:this.host,port:this.port}),n.add("Application-Name",this.appname),n.add("Notification-Name",t.label||this.labels[0]),n.add("Notification-ID",++this.count),n.add("Notification-Title",t.title),n.add("Notification-Text",e),n.add("Notification-Sticky",t.sticky?"True":"False"),n.add("Notification-Priority",t.priority),n.add("Notification-Icon",t.icon),n.add("Notification-Coalescing-ID",t.coalescingId||void 0),n.add("Notification-Callback-Context",r?"context":void 0),n.add("Notification-Callback-Context-Type",r?"string":void 0),n.add("Notification-Callback-Target",void 0),n.newline(),n.send(function(o,a){r&&o?r(o):r&&a.state==="CALLBACK"&&r(void 0,a["Notification-Callback-Result"].toLowerCase())})};Ei.exports=new Te});var Xe=b((If,_i)=>{c();var Ns=At(),Ve=de(),Re=vi(),Si=v("events").EventEmitter,Ss=v("util"),_s="Couldn't connect to growl (might be used as a fallback). Make sure it is running";_i.exports=be;var Ni;function be(e){if(e=Ve.clone(e||{}),!(this instanceof be))return new be(e);Re.appname=e.name||"Node",this.options=e,Si.call(this)}s(be,"Growl");Ss.inherits(be,Si);function xs(e,t){if(Re.setHost(this.options.host,this.options.port),e=Ve.clone(e||{}),typeof e=="string"&&(e={title:"node-notifier",message:e}),t=Ve.actionJackerDecorator(this,e,t,function(r){return r==="click"?"click":r==="timedout"?"timeout":!1}),e=Ve.mapToGrowl(e),!e.message)return t(new Error("Message is required.")),this;if(e.title=e.title||"Node Notification:",Ni||e.wait){let r=e.wait?t:Is;return Re.notify(e.message,e,r),e.wait||t(),this}return Ns(Re,function(r,i){if(Ni=i,!i)return t(new Error(_s));Re.notify(e.message,e),t()}),this}s(xs,"notifyRaw");Object.defineProperty(be.prototype,"notify",{get:s(function(){return this._notify||(this._notify=xs.bind(this)),this._notify},"get")});function Is(){}s(Is,"noop")});var Ai=b((Cf,Di)=>{c();var pe=de(),Ds=Xe(),As=v("path"),Cs=As.join(__dirname,"../vendor/mac.noindex/terminal-notifier.app/Contents/MacOS/terminal-notifier"),Ii=v("events").EventEmitter,Ts=v("util"),Rs="You need Mac OS X 10.8 or above to use NotificationCenter, or use Growl fallback with constructor option {withFallback: true}.";Di.exports=ke;function ke(e){if(e=pe.clone(e||{}),!(this instanceof ke))return new ke(e);this.options=e,Ii.call(this)}s(ke,"NotificationCenter");Ts.inherits(ke,Ii);var xi=null;function bs(){}s(bs,"noop");function ks(e,t){let r,i=Ls();if(e=pe.clone(e||{}),xi=i,typeof e=="string"&&(e={title:"node-notifier",message:e}),t=t||bs,typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof fn);let n=pe.actionJackerDecorator(this,e,t,function(a){return xi!==i?!1:a==="activate"?"click":a==="timeout"?"timeout":a==="replied"?"replied":!1});if(e=pe.mapToMac(e),!e.message&&!e.group&&!e.list&&!e.remove)return t(new Error("Message, group, remove or list property is required.")),this;let o=pe.constructArgumentList(e);return pe.isMountainLion()?(pe.fileCommandJson(this.options.customPath||Cs,o,n),this):r||this.options.withFallback?(r=r||new Ds(this.options),r.notify(e,t)):(t(new Error(Rs)),this)}s(ks,"notifyRaw");Object.defineProperty(ke.prototype,"notify",{get:s(function(){return this._notify||(this._notify=ks.bind(this)),this._notify},"get")});function Ls(){return{_ref:"val"}}s(Ls,"identificator")});var Ct=b((bf,bi)=>{c();var Os=v("path"),qs=Os.resolve(__dirname,"../vendor/notifu/notifu"),Fs=At(),re=de(),Us=Tt(),Ci=Xe(),Ps=v("os"),Ri=v("events").EventEmitter,Ms=v("util"),Ze;bi.exports=Le;function Le(e){if(e=re.clone(e||{}),!(this instanceof Le))return new Le(e);this.options=e,Ri.call(this)}s(Le,"WindowsBalloon");Ms.inherits(Le,Ri);function Ws(){}s(Ws,"noop");function Gs(e,t){let r,i=this.options;e=re.clone(e||{}),t=t||Ws,typeof e=="string"&&(e={title:"node-notifier",message:e});let n=re.actionJackerDecorator(this,e,t,function(o){return o==="activate"?"click":o==="timeout"?"timeout":!1});return this.options.withFallback&&re.isWin8()?(r=r||new Us(i),r.notify(e,t)):this.options.withFallback&&(!re.isLessThanWin8()||Ze===!0)?(r=r||new Ci(i),r.notify(e,t)):!this.options.withFallback||Ze===!1?(Ti(e,i,n),this):(Fs(i,function(o,a){if(Ze=a,Ze)return r=r||new Ci(i),r.notify(e,t);Ti(e,i,n)}),this)}s(Gs,"notifyRaw");Object.defineProperty(Le.prototype,"notify",{get:s(function(){return this._notify||(this._notify=Gs.bind(this)),this._notify},"get")});var Bs=["t","d","p","m","i","e","q","w","xp"];function Ti(e,t,r){let i=Ps.arch()==="x64";e=e||{},e=re.mapToNotifu(e),e.p=e.p||"Node Notification:";let n=qs+(i?"64":"")+".exe",o=t.customPath||n;if(!e.m)return r(new Error("Message is required.")),this;let a=re.constructArgumentList(e,{wrapper:"",noEscape:!0,explicitTrue:!0,allowedArguments:Bs});if(e.wait)return re.fileCommand(o,a,function(f,l){let u=js(f.code);return u==="error"?r(f,l):r(null,u)});re.immediateFileCommand(o,a,r)}s(Ti,"doNotification");function js(e){switch(e){case 2:return"timeout";case 3:case 6:case 7:return"activate";case 4:return"close";default:return"error"}}s(js,"fromErrorCodeToAction")});import Hs from"crypto";function Oe(){return Qe>et.length-16&&(Hs.randomFillSync(et),Qe=0),et.slice(Qe,Qe+=16)}var et,Qe,Rt=q(()=>{c();et=new Uint8Array(256),Qe=et.length;s(Oe,"rng")});var ki,Li=q(()=>{c();ki=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i});function $s(e){return typeof e=="string"&&ki.test(e)}var ae,qe=q(()=>{c();Li();s($s,"validate");ae=$s});function Ks(e,t=0){let r=(k[e[t+0]]+k[e[t+1]]+k[e[t+2]]+k[e[t+3]]+"-"+k[e[t+4]]+k[e[t+5]]+"-"+k[e[t+6]]+k[e[t+7]]+"-"+k[e[t+8]]+k[e[t+9]]+"-"+k[e[t+10]]+k[e[t+11]]+k[e[t+12]]+k[e[t+13]]+k[e[t+14]]+k[e[t+15]]).toLowerCase();if(!ae(r))throw TypeError("Stringified UUID is invalid");return r}var k,ce,Fe=q(()=>{c();qe();k=[];for(let e=0;e<256;++e)k.push((e+256).toString(16).substr(1));s(Ks,"stringify");ce=Ks});function zs(e,t,r){let i=t&&r||0,n=t||new Array(16);e=e||{};let o=e.node||Oi,a=e.clockseq!==void 0?e.clockseq:bt;if(o==null||a==null){let p=e.random||(e.rng||Oe)();o==null&&(o=Oi=[p[0]|1,p[1],p[2],p[3],p[4],p[5]]),a==null&&(a=bt=(p[6]<<8|p[7])&16383)}let f=e.msecs!==void 0?e.msecs:Date.now(),l=e.nsecs!==void 0?e.nsecs:Lt+1,u=f-kt+(l-Lt)/1e4;if(u<0&&e.clockseq===void 0&&(a=a+1&16383),(u<0||f>kt)&&e.nsecs===void 0&&(l=0),l>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");kt=f,Lt=l,bt=a,f+=122192928e5;let h=((f&268435455)*1e4+l)%4294967296;n[i++]=h>>>24&255,n[i++]=h>>>16&255,n[i++]=h>>>8&255,n[i++]=h&255;let g=f/4294967296*1e4&268435455;n[i++]=g>>>8&255,n[i++]=g&255,n[i++]=g>>>24&15|16,n[i++]=g>>>16&255,n[i++]=a>>>8|128,n[i++]=a&255;for(let p=0;p<6;++p)n[i+p]=o[p];return t||ce(n)}var Oi,bt,kt,Lt,qi,Fi=q(()=>{c();Rt();Fe();kt=0,Lt=0;s(zs,"v1");qi=zs});function Js(e){if(!ae(e))throw TypeError("Invalid UUID");let t,r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=t&255,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=t&255,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=t&255,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=t&255,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=t&255,r}var tt,Ot=q(()=>{c();qe();s(Js,"parse");tt=Js});function Ys(e){e=unescape(encodeURIComponent(e));let t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}function Ue(e,t,r){function i(n,o,a,f){if(typeof n=="string"&&(n=Ys(n)),typeof o=="string"&&(o=tt(o)),o.length!==16)throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let l=new Uint8Array(16+n.length);if(l.set(o),l.set(n,o.length),l=r(l),l[6]=l[6]&15|t,l[8]=l[8]&63|128,a){f=f||0;for(let u=0;u<16;++u)a[f+u]=l[u];return a}return ce(l)}s(i,"generateUUID");try{i.name=e}catch{}return i.DNS=Vs,i.URL=Xs,i}var Vs,Xs,qt=q(()=>{c();Fe();Ot();s(Ys,"stringToBytes");Vs="6ba7b810-9dad-11d1-80b4-00c04fd430c8",Xs="6ba7b811-9dad-11d1-80b4-00c04fd430c8";s(Ue,"default")});import Zs from"crypto";function Qs(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),Zs.createHash("md5").update(e).digest()}var Ui,Pi=q(()=>{c();s(Qs,"md5");Ui=Qs});var eo,Mi,Wi=q(()=>{c();qt();Pi();eo=Ue("v3",48,Ui),Mi=eo});function to(e,t,r){e=e||{};let i=e.random||(e.rng||Oe)();if(i[6]=i[6]&15|64,i[8]=i[8]&63|128,t){r=r||0;for(let n=0;n<16;++n)t[r+n]=i[n];return t}return ce(i)}var Gi,Bi=q(()=>{c();Rt();Fe();s(to,"v4");Gi=to});import ro from"crypto";function io(e){return Array.isArray(e)?e=Buffer.from(e):typeof e=="string"&&(e=Buffer.from(e,"utf8")),ro.createHash("sha1").update(e).digest()}var ji,Hi=q(()=>{c();s(io,"sha1");ji=io});var no,$i,Ki=q(()=>{c();qt();Hi();no=Ue("v5",80,ji),$i=no});var zi,Ji=q(()=>{c();zi="00000000-0000-0000-0000-000000000000"});function so(e){if(!ae(e))throw TypeError("Invalid UUID");return parseInt(e.substr(14,1),16)}var Yi,Vi=q(()=>{c();qe();s(so,"version");Yi=so});var Xi={};yn(Xi,{NIL:()=>zi,parse:()=>tt,stringify:()=>ce,v1:()=>qi,v3:()=>Mi,v4:()=>Gi,v5:()=>$i,validate:()=>ae,version:()=>Yi});var Zi=q(()=>{c();Fi();Wi();Bi();Ki();Ji();Vi();qe();Fe();Ot()});var Tt=b(($l,en)=>{c();var oo=v("path"),ao=oo.resolve(__dirname,"../vendor/snoreToast/snoretoast"),X=de(),co=Ct(),fo=v("os"),{v4:lo}=(Zi(),wn(Xi)),Qi=v("events").EventEmitter,uo=v("util"),Ft,ho="notifierPipe",mo="\\\\.\\pipe\\",po="/tmp/";en.exports=Pe;function Pe(e){if(e=X.clone(e||{}),!(this instanceof Pe))return new Pe(e);this.options=e,Qi.call(this)}s(Pe,"WindowsToaster");uo.inherits(Pe,Qi);function yo(){}s(yo,"noop");function wo(e){return e?e.split(";").reduce((t,r)=>{let i=r.split("=");return i&&i.length===2&&(t[i[0]]=i[1]),t},{}):{}}s(wo,"parseResult");function go(){return`${X.isWSL()?po:mo}${ho}-${lo()}`}s(go,"getPipeName");function Eo(e,t){e=X.clone(e||{}),t=t||yo;let r=fo.arch()==="x64",i,n={namedPipe:go()};if(typeof e=="string"&&(e={title:"node-notifier",message:e}),typeof t!="function")throw new TypeError("The second argument must be a function callback. You have passed "+typeof fn);let o=s((f,l)=>{let u=wo(i&&i.toString("utf16le"));u.action==="buttonClicked"&&u.button?u.activationType=u.button:u.action&&(u.activationType=u.action),f&&f.code===-1&&l(f,u),l(null,u),n.instance&&n.instance.close()},"snoreToastResultParser"),a=s(f=>o(f,X.actionJackerDecorator(this,e,t,l=>l==="activate"?"click":l||!1)),"actionJackedCallback");return e.title=e.title||"Node Notification:",typeof e.message>"u"&&typeof e.close>"u"?(t(new Error("Message or ID to close is required.")),this):!X.isWin8()&&!X.isWSL()&&this.options.withFallback?(Ft=Ft||new co(this.options),Ft.notify(e,t)):(X.createNamedPipe(n).then(f=>{i=f,e.pipeName=n.namedPipe;let l=e.customPath||this.options.customPath||ao+"-x"+(r?"64":"86")+".exe";e=X.mapToWin8(e);let u=X.constructArgumentList(e,{explicitTrue:!0,wrapper:"",keepNewlines:!0,noEscape:!0});X.fileCommand(l,u,a)}),this)}s(Eo,"notifyRaw");Object.defineProperty(Pe.prototype,"notify",{get:s(function(){return this._notify||(this._notify=Eo.bind(this)),this._notify},"get")})});var nn=b((Jl,C)=>{c();var tn=v("os"),rn=de(),Me=hi(),Ut=Ai(),We=Tt(),Pt=Xe(),Mt=Ct(),ye={withFallback:!0},vo=rn.isWSL()?"WSL":tn.type();switch(vo){case"Linux":C.exports=new Me(ye),C.exports.Notification=Me;break;case"Darwin":C.exports=new Ut(ye),C.exports.Notification=Ut;break;case"Windows_NT":rn.isLessThanWin8()?(C.exports=new Mt(ye),C.exports.Notification=Mt):(C.exports=new We(ye),C.exports.Notification=We);break;case"WSL":C.exports=new We(ye),C.exports.Notification=We;break;default:tn.type().match(/BSD$/)?(C.exports=new Me(ye),C.exports.Notification=Me):(C.exports=new Pt(ye),C.exports.Notification=Pt)}C.exports.NotifySend=Me;C.exports.NotificationCenter=Ut;C.exports.WindowsToaster=We;C.exports.WindowsBalloon=Mt;C.exports.Growl=Pt});c();var cn=Be(En(),1),fe=Be(gn(),1);import an from"node:path";c();import{EventEmitter as Tn}from"node:events";import gt from"node:fs";import ge from"node:path";c();import Sn from"node:os";var ar=300,se=20,Ne=1e7,cr=Sn.platform();var _n=cr==="darwin",st=cr==="win32",oe=_n||st,fr=3e3,lr=2e4,ot=1250;c();var J;(function(e){e[e.DIR=1]="DIR",e[e.FILE=2]="FILE"})(J||(J={}));var ue;(function(e){e.CHANGE="change",e.RENAME="rename"})(ue||(ue={}));var Se;(function(e){e.CHANGE="change",e.ERROR="error"})(Se||(Se={}));var m;(function(e){e.ADD="add",e.ADD_DIR="addDir",e.CHANGE="change",e.RENAME="rename",e.RENAME_DIR="renameDir",e.UNLINK="unlink",e.UNLINK_DIR="unlinkDir"})(m||(m={}));var F;(function(e){e.ALL="all",e.CLOSE="close",e.ERROR="error",e.READY="ready"})(F||(F={}));c();c();c();var xn=s((e,t=1,r)=>{t=Math.max(1,t);let i=r?.leading??!1,n=r?.trailing??!0,o=Math.max(r?.maxWait??1/0,t),a,f,l=0,u=0,h=s(()=>{let _=Date.now(),W=_-l,ne=_-u,le=W>=t||ne>=o;return[_,le]},"getInstantData"),g=s(_=>{if(u=_,!a)return;let W=a;a=void 0,e.apply(void 0,W)},"invoke"),p=s(()=>{L(0)},"onCancel"),d=s(()=>{f&&(p(),g(Date.now()))},"onFlush"),D=s(_=>{if(u=_,i)return g(_)},"onLeading"),T=s(_=>{if(n&&a)return g(_);a=void 0},"onTrailing"),M=s(()=>{f=void 0;let[_,W]=h();return W?T(_):ie(_)},"onTimeout"),ie=s(_=>{let W=_-l,ne=_-u,le=t-W,Ge=o-ne,H=Math.min(le,Ge);return L(H)},"updateTimeout"),L=s(_=>{f&&clearTimeout(f),!(_<=0)&&(f=setTimeout(M,_))},"resetTimeout"),j=s((..._)=>{let[W,ne]=h(),le=!!f;if(a=_,l=W,(ne||!f)&&L(t),ne)return le?g(W):D(W)},"debounced");return j.cancel=p,j.flush=d,j},"debounce"),He=xn;c();import Sr from"node:fs";import lt from"node:path";c();import S from"node:fs";import{promisify as O}from"node:util";c();var Q=s((e,t)=>s(function(...i){return e.apply(void 0,i).catch(t)},"attemptified"),"attemptifyAsync"),Y=s((e,t)=>s(function(...i){try{return e.apply(void 0,i)}catch(n){return t(n)}},"attemptified"),"attemptifySync");c();import ur from"node:process";var hr=ur.getuid?!ur.getuid():!1,dr=1e4,P=s(()=>{},"NOOP");c();var _e={isChangeErrorOk:s(e=>{if(!_e.isNodeError(e))return!1;let{code:t}=e;return t==="ENOSYS"||!hr&&(t==="EINVAL"||t==="EPERM")},"isChangeErrorOk"),isNodeError:s(e=>e instanceof Error,"isNodeError"),isRetriableError:s(e=>{if(!_e.isNodeError(e))return!1;let{code:t}=e;return t==="EMFILE"||t==="ENFILE"||t==="EAGAIN"||t==="EBUSY"||t==="EACCESS"||t==="EACCES"||t==="EACCS"||t==="EPERM"},"isRetriableError"),onChangeError:s(e=>{if(!_e.isNodeError(e))throw e;if(!_e.isChangeErrorOk(e))throw e},"onChangeError")},I=_e;c();c();var at=class{static{s(this,"RetryfyQueue")}constructor(){this.interval=25,this.intervalId=void 0,this.limit=dr,this.queueActive=new Set,this.queueWaiting=new Set,this.init=()=>{this.intervalId||(this.intervalId=setInterval(this.tick,this.interval))},this.reset=()=>{this.intervalId&&(clearInterval(this.intervalId),delete this.intervalId)},this.add=t=>{this.queueWaiting.add(t),this.queueActive.size<this.limit/2?this.tick():this.init()},this.remove=t=>{this.queueWaiting.delete(t),this.queueActive.delete(t)},this.schedule=()=>new Promise(t=>{let r=s(()=>this.remove(i),"cleanup"),i=s(()=>t(r),"resolver");this.add(i)}),this.tick=()=>{if(!(this.queueActive.size>=this.limit)){if(!this.queueWaiting.size)return this.reset();for(let t of this.queueWaiting){if(this.queueActive.size>=this.limit)break;this.queueWaiting.delete(t),this.queueActive.add(t),t()}}}}},mr=new at;var ee=s((e,t)=>s(function(i){return s(function n(...o){return mr.schedule().then(a=>{let f=s(u=>(a(),u),"onResolve"),l=s(u=>{if(a(),Date.now()>=i)throw u;if(t(u)){let h=Math.round(100*Math.random());return new Promise(p=>setTimeout(p,h)).then(()=>n.apply(void 0,o))}throw u},"onReject");return e.apply(void 0,o).then(f,l)})},"attempt")},"retrified"),"retryifyAsync"),te=s((e,t)=>s(function(i){return s(function n(...o){try{return e.apply(void 0,o)}catch(a){if(Date.now()>i)throw a;if(t(a))return n.apply(void 0,o);throw a}},"attempt")},"retrified"),"retryifySync");var In={attempt:{chmod:Q(O(S.chmod),I.onChangeError),chown:Q(O(S.chown),I.onChangeError),close:Q(O(S.close),P),fsync:Q(O(S.fsync),P),mkdir:Q(O(S.mkdir),P),realpath:Q(O(S.realpath),P),stat:Q(O(S.stat),P),unlink:Q(O(S.unlink),P),chmodSync:Y(S.chmodSync,I.onChangeError),chownSync:Y(S.chownSync,I.onChangeError),closeSync:Y(S.closeSync,P),existsSync:Y(S.existsSync,P),fsyncSync:Y(S.fsync,P),mkdirSync:Y(S.mkdirSync,P),realpathSync:Y(S.realpathSync,P),statSync:Y(S.statSync,P),unlinkSync:Y(S.unlinkSync,P)},retry:{close:ee(O(S.close),I.isRetriableError),fsync:ee(O(S.fsync),I.isRetriableError),open:ee(O(S.open),I.isRetriableError),readFile:ee(O(S.readFile),I.isRetriableError),rename:ee(O(S.rename),I.isRetriableError),stat:ee(O(S.stat),I.isRetriableError),write:ee(O(S.write),I.isRetriableError),writeFile:ee(O(S.writeFile),I.isRetriableError),closeSync:te(S.closeSync,I.isRetriableError),fsyncSync:te(S.fsyncSync,I.isRetriableError),openSync:te(S.openSync,I.isRetriableError),readFileSync:te(S.readFileSync,I.isRetriableError),renameSync:te(S.renameSync,I.isRetriableError),statSync:te(S.statSync,I.isRetriableError),writeSync:te(S.writeSync,I.isRetriableError),writeFileSync:te(S.writeFileSync,I.isRetriableError)}},pr=In;c();import ft from"node:fs";import $e from"node:path";c();c();c();var ct=s(()=>{},"noop");var Dn=s(()=>{let e=ct,t=ct,r=!1,i=!1;return{promise:new Promise((l,u)=>{e=s(h=>(r=!0,l(h)),"resolve"),t=s(h=>(i=!0,u(h)),"reject")}),resolve:e,reject:t,isPending:s(()=>!r&&!i,"isPending"),isResolved:s(()=>r,"isResolved"),isRejected:s(()=>i,"isRejected")}},"makeNakedPromise"),yr=Dn;var An=s(()=>{let{promise:e,resolve:t,isPending:r}=yr(),i=0,n=s(()=>{i+=1},"increment"),o=s(()=>{i-=1,!i&&t()},"decrement");return s(()=>{n(),queueMicrotask(o)},"init")(),{promise:e,isPending:r,increment:n,decrement:o}},"makeCounterPromise"),wr=An;c();var gr={then:s(e=>{e()},"then")};c();var Er=s(e=>Array.isArray(e)?e:[e],"castArray"),vr=s(e=>typeof e=="function","isFunction");var Cn=s((e,t)=>{let r=t?.followSymlinks??!1,i=t?.depth??1/0,n=t?.limit??1/0,o=t?.ignore??[],a=Er(o).map(E=>vr(E)?E:w=>E.test(w)),f=s(E=>a.some(w=>w(E)),"isIgnored"),l=t?.signal??{aborted:!1},u=t?.onDirents||(()=>{}),h=[],g=new Set,p={},d=[],D=new Set,T={},M=[],ie=new Set,L={},j={},_=new Set,W={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{},map:{}},ne={directories:h,directoriesNames:g,directoriesNamesToPaths:p,files:d,filesNames:D,filesNamesToPaths:T,symlinks:M,symlinksNames:ie,symlinksNamesToPaths:L,map:j},{promise:le,increment:Ge,decrement:H}=wr(),Z=0,Wt=s((E,w,N,x)=>{_.has(w)||Z>=n||(Z+=1,E.directories.push(w),E.directoriesNames.add(N),h.push(w),g.add(N),p.propertyIsEnumerable(N)||(p[N]=[]),p[N].push(w),_.add(w),!(x>=i)&&(Z>=n||jt(w,x+1)))},"handleDirectory"),Gt=s((E,w,N)=>{_.has(w)||Z>=n||(Z+=1,E.files.push(w),E.filesNames.add(N),d.push(w),D.add(N),T.propertyIsEnumerable(N)||(T[N]=[]),T[N].push(w),_.add(w))},"handleFile"),Bt=s((E,w,N,x)=>{_.has(w)||Z>=n||(Z+=1,E.symlinks.push(w),E.symlinksNames.add(N),M.push(w),ie.add(N),L.propertyIsEnumerable(N)||(L[N]=[]),L[N].push(w),_.add(w),r&&(x>=i||Z>=n||mn(w,x+1)))},"handleSymlink"),un=s((E,w,N,x,$)=>{l.aborted||f(w)||(x.isDirectory()?Wt(E,w,N,$):x.isFile()?Gt(E,w,N):x.isSymbolicLink()&&Bt(E,w,N,$))},"handleStat"),hn=s((E,w,N,x)=>{if(l.aborted)return;let $=w===$e.sep?"":$e.sep,z=N.name,we=`${w}${$}${z}`;f(we)||(N.isDirectory()?Wt(E,we,z,x):N.isFile()?Gt(E,we,z):N.isSymbolicLink()&&Bt(E,we,z,x))},"handleDirent"),dn=s((E,w,N,x)=>{for(let $=0,z=N.length;$<z;$++)hn(E,w,N[$],x)},"handleDirents"),jt=s((E,w)=>{l.aborted||w>i||Z>=n||(Ge(),ft.readdir(E,{withFileTypes:!0},(N,x)=>{if(N||l.aborted||!x.length)return H();(u(x)||gr).then(()=>{let z=j[E]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};dn(z,E,x,w),H()})}))},"populateResultFromPath"),mn=s((E,w)=>{Ge(),ft.realpath(E,(N,x)=>{if(N||l.aborted)return H();ft.stat(x,($,z)=>{if($||l.aborted)return H();let we=$e.basename(x),pn=j[E]={directories:[],directoriesNames:new Set,directoriesNamesToPaths:{},files:[],filesNames:new Set,filesNamesToPaths:{},symlinks:[],symlinksNames:new Set,symlinksNamesToPaths:{}};un(pn,x,we,z,w),H()})})},"populateResultFromSymlink");return s(async(E,w=1)=>(E=$e.normalize(E),_.add(E),jt(E,w),await le,l.aborted?W:ne),"getResult")(e)},"readdir"),Nr=Cn;var V={lang:{debounce:He,attempt:s(e=>{try{return e()}catch(t){return V.lang.castError(t)}},"attempt"),castArray:s(e=>V.lang.isArray(e)?e:[e],"castArray"),castError:s(e=>V.lang.isError(e)?e:V.lang.isString(e)?new Error(e):new Error("Unknown error"),"castError"),defer:s(e=>setTimeout(e,0),"defer"),isArray:s(e=>Array.isArray(e),"isArray"),isError:s(e=>e instanceof Error,"isError"),isFunction:s(e=>typeof e=="function","isFunction"),isNaN:s(e=>Number.isNaN(e),"isNaN"),isNumber:s(e=>typeof e=="number","isNumber"),isPrimitive:s(e=>{if(e===null)return!0;let t=typeof e;return t!=="object"&&t!=="function"},"isPrimitive"),isShallowEqual:s((e,t)=>{if(e===t)return!0;if(V.lang.isNaN(e))return V.lang.isNaN(t);if(V.lang.isPrimitive(e)||V.lang.isPrimitive(t))return e===t;for(let r in e)if(!(r in t))return!1;for(let r in t)if(e[r]!==t[r])return!1;return!0},"isShallowEqual"),isSet:s(e=>e instanceof Set,"isSet"),isString:s(e=>typeof e=="string","isString"),isUndefined:s(e=>e===void 0,"isUndefined"),noop:s(()=>{},"noop"),uniq:s(e=>e.length<2?e:Array.from(new Set(e)),"uniq")},fs:{getDepth:s(e=>Math.max(0,e.split(lt.sep).length-1),"getDepth"),getRealPath:s((e,t)=>{try{return t?Sr.realpathSync.native(e):Sr.realpathSync(e)}catch{return}},"getRealPath"),isSubPath:s((e,t)=>t.startsWith(e)&&t[e.length]===lt.sep&&t.length-e.length>lt.sep.length,"isSubPath"),poll:s((e,t=lr)=>pr.retry.stat(t)(e,{bigint:!0}).catch(V.lang.noop),"poll"),readdir:s(async(e,t,r=1/0,i=1/0,n,o)=>{if(o&&r===1&&e in o){let a=o[e];return[a.directories,a.files]}else{let a=await Nr(e,{depth:r,limit:i,ignore:t,signal:n});return[a.directories,a.files]}},"readdir")}},y=V;c();import ut from"node:path";var ht=class{static{s(this,"WatcherHandler")}constructor(t,r,i){this.base=i,this.watcher=t,this.handler=r.handler,this.fswatcher=r.watcher,this.options=r.options,this.folderPath=r.folderPath,this.filePath=r.filePath,this.handlerBatched=this.base?this.base.onWatcherEvent.bind(this.base):this._makeHandlerBatched(this.options.debounce)}_isSubRoot(t){return this.filePath?t===this.filePath:t===this.folderPath||y.fs.isSubPath(this.folderPath,t)}_makeHandlerBatched(t=ar){return(()=>{let r=this.watcher._readyWait,i=[],n=new Set,o=s(async(f,l)=>{let u=this.options.ignoreInitial?[]:f,h=await this.eventsPopulate([...l]),g=this.eventsDeduplicate([...u,...h]);this.onTargetEvents(g)},"flush"),a=y.lang.debounce(()=>{this.watcher.isClosed()||(r=o(i,n),i=[],n=new Set)},t);return async(f,l="",u=!1)=>{u?await this.eventsPopulate([l],i,!0):n.add(l),r.then(a)}})()}eventsDeduplicate(t){if(t.length<2)return t;let r={};return t.reduce((i,n)=>{let[o,a]=n,f=r[a];return o===f||o===m.CHANGE&&f===m.ADD||(r[a]=o,i.push(n)),i},[])}async eventsPopulate(t,r=[],i=!1){return await Promise.all(t.map(async n=>{let o=await this.watcher._poller.update(n,this.options.pollingTimeout);await Promise.all(o.map(async a=>{r.push([a,n]),a===m.ADD_DIR?await this.eventsPopulateAddDir(t,n,r,i):a===m.UNLINK_DIR&&await this.eventsPopulateUnlinkDir(t,n,r,i)}))})),r}async eventsPopulateAddDir(t,r,i=[],n=!1){if(n)return i;let o=this.options.recursive?this.options.depth??se:Math.min(1,this.options.depth??se),a=this.options.limit??Ne,[f,l]=await y.fs.readdir(r,this.options.ignore,o,a,this.watcher._closeSignal),u=[...f,...l];return await Promise.all(u.map(h=>{if(!this.watcher.isIgnored(h,this.options.ignore)&&!t.includes(h))return this.eventsPopulate([h],i,!0)})),i}async eventsPopulateUnlinkDir(t,r,i=[],n=!1){if(n)return i;for(let o of this.watcher._poller.stats.keys())y.fs.isSubPath(r,o)&&(t.includes(o)||await this.eventsPopulate([o],i,!0));return i}onTargetAdd(t){this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAdd(t,this.options.renameTimeout):this.watcher.event(m.ADD,t))}onTargetAddDir(t){t!==this.folderPath&&this.options.recursive&&!oe&&this.options.native!==!1&&this.watcher.watchDirectory(t,this.options,this.handler,void 0,this.base||this),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetAddDir(t,this.options.renameTimeout):this.watcher.event(m.ADD_DIR,t))}onTargetChange(t){this._isSubRoot(t)&&this.watcher.event(m.CHANGE,t)}onTargetUnlink(t){this.watcher.watchersClose(ut.dirname(t),t,!1),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlink(t,this.options.renameTimeout):this.watcher.event(m.UNLINK,t))}onTargetUnlinkDir(t){this.watcher.watchersClose(ut.dirname(t),t,!1),this.watcher.watchersClose(t),this._isSubRoot(t)&&(this.options.renameDetection?this.watcher._locker.getLockTargetUnlinkDir(t,this.options.renameTimeout):this.watcher.event(m.UNLINK_DIR,t))}onTargetEvent(t){let[r,i]=t;r===m.ADD?this.onTargetAdd(i):r===m.ADD_DIR?this.onTargetAddDir(i):r===m.CHANGE?this.onTargetChange(i):r===m.UNLINK?this.onTargetUnlink(i):r===m.UNLINK_DIR&&this.onTargetUnlinkDir(i)}onTargetEvents(t){for(let r of t)this.onTargetEvent(r)}onWatcherEvent(t,r,i=!1){return this.handlerBatched(t,r,i)}onWatcherChange(t=ue.CHANGE,r){if(this.watcher.isClosed())return;let i=ut.resolve(this.folderPath,r||"");this.filePath&&i!==this.folderPath&&i!==this.filePath||this.watcher.isIgnored(i,this.options.ignore)||this.onWatcherEvent(t,i)}onWatcherError(t){st&&t.code==="EPERM"?this.onWatcherChange(ue.CHANGE,""):this.watcher.error(t)}async init(){await this.initWatcherEvents(),await this.initInitialEvents()}async initWatcherEvents(){let t=this.onWatcherChange.bind(this);this.fswatcher.on(Se.CHANGE,t);let r=this.onWatcherError.bind(this);this.fswatcher.on(Se.ERROR,r)}async initInitialEvents(){let t=!this.watcher.isReady();if(this.filePath){if(this.watcher._poller.stats.has(this.filePath))return;await this.onWatcherEvent(ue.CHANGE,this.filePath,t)}else{let r=this.options.recursive&&oe&&this.options.native!==!1?this.options.depth??se:Math.min(1,this.options.depth??se),i=this.options.limit??Ne,[n,o]=await y.fs.readdir(this.folderPath,this.options.ignore,r,i,this.watcher._closeSignal,this.options.readdirMap),a=[this.folderPath,...n,...o];await Promise.all(a.map(f=>{if(!this.watcher._poller.stats.has(f)&&!this.watcher.isIgnored(f,this.options.ignore))return this.onWatcherEvent(ue.CHANGE,f,t)}))}}},_r=ht;c();c();var U={interval:100,intervalId:void 0,fns:new Map,init:s(()=>{U.intervalId||(U.intervalId=setInterval(U.resolve,U.interval))},"init"),reset:s(()=>{U.intervalId&&(clearInterval(U.intervalId),delete U.intervalId)},"reset"),add:s((e,t)=>{U.fns.set(e,Date.now()+t),U.init()},"add"),remove:s(e=>{U.fns.delete(e)},"remove"),resolve:s(()=>{if(!U.fns.size)return U.reset();let e=Date.now();for(let[t,r]of U.fns)r>=e||(U.remove(t),t())},"resolve")},xe=U;var Ie=class e{static{s(this,"WatcherLocker")}constructor(t){this._watcher=t,this.reset()}getLockAdd(t,r=ot){let{ino:i,targetPath:n,events:o,locks:a}=t,f=s(()=>{let g=this._watcher._poller.paths.find(i||-1,p=>p!==n);if(g&&g!==n){if(y.fs.getRealPath(n,!0)===g)return;this._watcher.event(o.rename,g,n)}else this._watcher.event(o.add,n)},"emit");if(!i)return f();let l=s(()=>{a.add.delete(i),xe.remove(u)},"cleanup"),u=s(()=>{l(),f()},"free");xe.add(u,r);let h=s(()=>{let g=a.unlink.get(i);if(!g)return;l();let p=g();n===p?o.change&&this._watcher._poller.stats.has(n)&&this._watcher.event(o.change,n):this._watcher.event(o.rename,p,n)},"resolve");a.add.set(i,h),h()}getLockUnlink(t,r=ot){let{ino:i,targetPath:n,events:o,locks:a}=t,f=s(()=>{this._watcher.event(o.unlink,n)},"emit");if(!i)return f();let l=s(()=>{a.unlink.delete(i),xe.remove(u)},"cleanup"),u=s(()=>{l(),f()},"free");xe.add(u,r);let h=s(()=>(l(),n),"overridden");a.unlink.set(i,h),a.add.get(i)?.()}getLockTargetAdd(t,r){let i=this._watcher._poller.getIno(t,m.ADD,J.FILE);return this.getLockAdd({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetAddDir(t,r){let i=this._watcher._poller.getIno(t,m.ADD_DIR,J.DIR);return this.getLockAdd({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}getLockTargetUnlink(t,r){let i=this._watcher._poller.getIno(t,m.UNLINK,J.FILE);return this.getLockUnlink({ino:i,targetPath:t,events:e.FILE_EVENTS,locks:this._locksFile},r)}getLockTargetUnlinkDir(t,r){let i=this._watcher._poller.getIno(t,m.UNLINK_DIR,J.DIR);return this.getLockUnlink({ino:i,targetPath:t,events:e.DIR_EVENTS,locks:this._locksDir},r)}reset(){this._locksAdd=new Map,this._locksAddDir=new Map,this._locksUnlink=new Map,this._locksUnlinkDir=new Map,this._locksDir={add:this._locksAddDir,unlink:this._locksUnlinkDir},this._locksFile={add:this._locksAdd,unlink:this._locksUnlink}}};Ie.DIR_EVENTS={add:m.ADD_DIR,rename:m.RENAME_DIR,unlink:m.UNLINK_DIR};Ie.FILE_EVENTS={add:m.ADD,change:m.CHANGE,rename:m.RENAME,unlink:m.UNLINK};var xr=Ie;c();c();var dt=class{static{s(this,"LazyMapSet")}constructor(){this.map=new Map}clear(){this.map.clear()}delete(t,r){if(y.lang.isUndefined(r))return this.map.delete(t);if(this.map.has(t)){let i=this.map.get(t);if(y.lang.isSet(i)){let n=i.delete(r);return i.size||this.map.delete(t),n}else if(i===r)return this.map.delete(t),!0}return!1}find(t,r){if(this.map.has(t)){let i=this.map.get(t);if(y.lang.isSet(i))return Array.from(i).find(r);if(r(i))return i}}get(t){return this.map.get(t)}has(t,r){if(y.lang.isUndefined(r))return this.map.has(t);if(this.map.has(t)){let i=this.map.get(t);return y.lang.isSet(i)?i.has(r):i===r}return!1}set(t,r){if(this.map.has(t)){let i=this.map.get(t);y.lang.isSet(i)?i.add(r):i!==r&&this.map.set(t,new Set([i,r]))}else this.map.set(t,r);return this}},mt=dt;c();var pt=class{static{s(this,"WatcherStats")}constructor(t){this.ino=t.ino<=Number.MAX_SAFE_INTEGER?Number(t.ino):t.ino,this.size=Number(t.size),this.atimeMs=Number(t.atimeMs),this.mtimeMs=Number(t.mtimeMs),this.ctimeMs=Number(t.ctimeMs),this.birthtimeMs=Number(t.birthtimeMs),this._isFile=t.isFile(),this._isDirectory=t.isDirectory(),this._isSymbolicLink=t.isSymbolicLink()}isFile(){return this._isFile}isDirectory(){return this._isDirectory}isSymbolicLink(){return this._isSymbolicLink}},Ir=pt;var yt=class{static{s(this,"WatcherPoller")}constructor(){this.inos={},this.paths=new mt,this.stats=new Map}getIno(t,r,i){let n=this.inos[r];if(!n)return;let o=n[t];if(o&&!(i&&o[1]!==i))return o[0]}getStats(t){return this.stats.get(t)}async poll(t,r){let i=await y.fs.poll(t,r);if(!(!i||!(i.isFile()||i.isDirectory())))return new Ir(i)}reset(){this.inos={},this.paths=new mt,this.stats=new Map}async update(t,r){let i=this.getStats(t),n=await this.poll(t,r);if(this.updateStats(t,n),!i&&n){if(n.isFile())return this.updateIno(t,m.ADD,n),[m.ADD];if(n.isDirectory())return this.updateIno(t,m.ADD_DIR,n),[m.ADD_DIR]}else if(i&&!n){if(i.isFile())return this.updateIno(t,m.UNLINK,i),[m.UNLINK];if(i.isDirectory())return this.updateIno(t,m.UNLINK_DIR,i),[m.UNLINK_DIR]}else if(i&&n){if(i.isFile()){if(n.isFile())return i.ino===n.ino&&!i.size&&!n.size?[]:(this.updateIno(t,m.CHANGE,n),[m.CHANGE]);if(n.isDirectory())return this.updateIno(t,m.UNLINK,i),this.updateIno(t,m.ADD_DIR,n),[m.UNLINK,m.ADD_DIR]}else if(i.isDirectory()){if(n.isFile())return this.updateIno(t,m.UNLINK_DIR,i),this.updateIno(t,m.ADD,n),[m.UNLINK_DIR,m.ADD];if(n.isDirectory())return i.ino===n.ino?[]:(this.updateIno(t,m.UNLINK_DIR,i),this.updateIno(t,m.ADD_DIR,n),[m.UNLINK_DIR,m.ADD_DIR])}}return[]}updateIno(t,r,i){let n=this.inos[r]=this.inos[r]||(this.inos[r]={}),o=i.isFile()?J.FILE:J.DIR;n[t]=[i.ino,o]}updateStats(t,r){if(r)this.paths.set(r.ino,t),this.stats.set(t,r);else{let i=this.stats.get(t)?.ino||-1;this.paths.delete(i,t),this.stats.delete(t)}}},wt=yt;var Et=class e extends Tn{static{s(this,"Watcher")}constructor(t,r,i){super(),this._closed=!1,this._ready=!1,this._closeAborter=new AbortController,this._closeSignal=this._closeAborter.signal,this.on(F.CLOSE,()=>this._closeAborter.abort()),this._closeWait=new Promise(n=>this.on(F.CLOSE,n)),this._readyWait=new Promise(n=>this.on(F.READY,n)),this._locker=new xr(this),this._roots=new Set,this._poller=new wt,this._pollers=new Set,this._subwatchers=new Set,this._watchers={},this._watchersLock=Promise.resolve(),this._watchersRestorable={},this.watch(t,r,i)}isClosed(){return this._closed}isIgnored(t,r){return!!r&&(y.lang.isFunction(r)?!!r(t):r.test(t))}isReady(){return this._ready}close(){return this._locker.reset(),this._poller.reset(),this._roots.clear(),this.watchersClose(),this.isClosed()?!1:(this._closed=!0,this.emit(F.CLOSE))}error(t){if(this.isClosed())return!1;let r=y.lang.castError(t);return this.emit(F.ERROR,r)}event(t,r,i){return this.isClosed()?!1:(this.emit(F.ALL,t,r,i),this.emit(t,r,i))}ready(){return this.isClosed()||this.isReady()?!1:(this._ready=!0,this.emit(F.READY))}pollerExists(t,r){for(let i of this._pollers)if(i.targetPath===t&&y.lang.isShallowEqual(i.options,r))return!0;return!1}subwatcherExists(t,r){for(let i of this._subwatchers)if(i.targetPath===t&&y.lang.isShallowEqual(i.options,r))return!0;return!1}watchersClose(t,r,i=!0){if(t){let n=this._watchers[t];if(n)for(let o of[...n])r&&o.filePath!==r||this.watcherClose(o);if(i)for(let o in this._watchers)y.fs.isSubPath(t,o)&&this.watchersClose(o,r,!1)}else for(let n in this._watchers)this.watchersClose(n,r,!1)}watchersLock(t){return this._watchersLock.then(()=>this._watchersLock=new Promise(async r=>{await t(),r()}))}watchersRestore(){delete this._watchersRestoreTimeout;let t=Object.entries(this._watchersRestorable);this._watchersRestorable={};for(let[r,i]of t)this.watchPath(r,i.options,i.handler)}async watcherAdd(t,r){let{folderPath:i}=t;(this._watchers[i]=this._watchers[i]||[]).push(t);let o=new _r(this,t,r);return await o.init(),o}watcherClose(t){t.watcher.close();let r=this._watchers[t.folderPath];if(r){let o=r.indexOf(t);r.splice(o,1),r.length||delete this._watchers[t.folderPath]}let i=t.filePath||t.folderPath;this._roots.has(i)&&(this._watchersRestorable[i]=t,this._watchersRestoreTimeout||(this._watchersRestoreTimeout=y.lang.defer(()=>this.watchersRestore())))}watcherExists(t,r,i,n){if(this._watchers[t]?.find(f=>f.handler===i&&(!f.filePath||f.filePath===n)&&f.options.ignore===r.ignore&&!!f.options.native==!!r.native&&(!r.recursive||f.options.recursive)))return!0;let a=ge.dirname(t);for(let f=1;f<1/0;f++){if(this._watchers[a]?.find(h=>(f===1||h.options.recursive&&f<=(h.options.depth??se))&&h.handler===i&&(!h.filePath||h.filePath===n)&&h.options.ignore===r.ignore&&!!h.options.native==!!r.native&&(!r.recursive||h.options.recursive&&oe&&h.options.native!==!1)))return!0;if(!oe)break;let u=ge.dirname(t);if(a===u)break;a=u}return!1}async watchDirectories(t,r,i,n,o){if(this.isClosed())return;t=y.lang.uniq(t).sort();let a;for(let f of t)if(!this.isIgnored(f,r.ignore)&&!this.watcherExists(f,r,i,n))try{let l=!r.recursive||oe&&r.native!==!1?r:{...r,recursive:!1},h={watcher:gt.watch(f,l),handler:i,options:r,folderPath:f,filePath:n},g=a=await this.watcherAdd(h,o);if(this._roots.has(n||f)){let d={...r,ignoreInitial:!0,recursive:!1},D=ge.dirname(f),T=f;await this.watchDirectories([D],d,i,T,g)}}catch(l){this.error(l)}return a}async watchDirectory(t,r,i,n,o){if(!this.isClosed()&&!this.isIgnored(t,r.ignore)){if(!r.recursive||oe&&r.native!==!1)return this.watchersLock(()=>this.watchDirectories([t],r,i,n,o));{r={...r,recursive:!0};let a=r.depth??se,f=r.limit??Ne,[l]=await y.fs.readdir(t,r.ignore,a,f,this._closeSignal,r.readdirMap);return this.watchersLock(async()=>{let u=await this.watchDirectories([t],r,i,n,o);if(l.length){let h=y.fs.getDepth(t);for(let g of l){let p=y.fs.getDepth(g),d=Math.max(0,a-(p-h)),D={...r,depth:d};await this.watchDirectories([g],D,i,n,o||u)}}})}}}async watchFileOnce(t,r,i){if(this.isClosed()||(r={...r,ignoreInitial:!1},this.subwatcherExists(t,r)))return;let n={targetPath:t,options:r},o=s((u,h)=>{h===t&&(l(),i())},"handler"),a=new e(o),f=s(()=>{this._subwatchers.add(n),this.on(F.CLOSE,l),a.watchFile(t,r,o)},"start"),l=s(()=>{this._subwatchers.delete(n),this.removeListener(F.CLOSE,l),a.close()},"stop");return f()}async watchFile(t,r,i){if(this.isClosed()||this.isIgnored(t,r.ignore))return;r={...r,recursive:!1};let n=ge.dirname(t);return this.watchDirectory(n,r,i,t)}async watchPollingOnce(t,r,i){if(this.isClosed())return;let n=!1,o=new wt,a=await this.watchPolling(t,r,async()=>{n||!(await o.update(t,r.pollingTimeout)).length||n||(n=!0,a(),i())})}async watchPolling(t,r,i){if(this.isClosed())return y.lang.noop;if(this.pollerExists(t,r))return y.lang.noop;let n={...r,interval:r.pollingInterval??fr},o={targetPath:t,options:r},a=s(()=>{this._pollers.add(o),this.on(F.CLOSE,f),gt.watchFile(t,n,i)},"start"),f=s(()=>{this._pollers.delete(o),this.removeListener(F.CLOSE,f),gt.unwatchFile(t,i)},"stop");return y.lang.attempt(a),()=>y.lang.attempt(f)}async watchUnknownChild(t,r,i){if(this.isClosed())return;let n=s(()=>this.watchPath(t,r,i),"watch");return this.watchFileOnce(t,r,n)}async watchUnknownTarget(t,r,i){if(this.isClosed())return;let n=s(()=>this.watchPath(t,r,i),"watch");return this.watchPollingOnce(t,r,n)}async watchPaths(t,r,i){if(this.isClosed())return;if(t=y.lang.uniq(t).sort(),t.every((o,a)=>t.every((f,l)=>l===a||!y.fs.isSubPath(o,f))))await Promise.all(t.map(o=>this.watchPath(o,r,i)));else for(let o of t)await this.watchPath(o,r,i)}async watchPath(t,r,i){if(this.isClosed()||(t=ge.resolve(t),this.isIgnored(t,r.ignore)))return;let n=await y.fs.poll(t,r.pollingTimeout);if(n){if(n.isFile())return this.watchFile(t,r,i);if(n.isDirectory())return this.watchDirectory(t,r,i);this.error(`"${t}" is not supported`)}else{let o=ge.dirname(t);return(await y.fs.poll(o,r.pollingTimeout))?.isDirectory()?this.watchUnknownChild(t,r,i):this.watchUnknownTarget(t,r,i)}}async watch(t,r,i=y.lang.noop){if(y.lang.isFunction(t))return this.watch([],{},t);if(y.lang.isUndefined(t))return this.watch([],r,i);if(y.lang.isFunction(r))return this.watch(t,{},r);if(y.lang.isUndefined(r))return this.watch(t,{},i);if(this.isClosed())return;this.isReady()&&(r.readdirMap=void 0);let n=y.lang.castArray(t);n.forEach(o=>this._roots.add(o)),await this.watchPaths(n,r,i),!this.isClosed()&&(i!==y.lang.noop&&this.on(F.ALL,i),r.readdirMap=void 0,this.ready())}},Dr=Et;var ln=Be(Jr(),1);c();var vt=s((e,...t)=>{let r=zt(e,...t);je.isInteractive?je.updateFooter(r):je.writeStdout(r)},"footer");c();var sn=Be(nn(),1);var on=s((e,t)=>{e.log.info("notifying user",{notification:t}),sn.default.notify({title:"Gadget",contentImage:rt("favicon-128@4x.png"),icon:rt("favicon-128@4x.png"),sound:!0,timeout:!1,...t},r=>{r&&e.log.warn("error notifying user",{notification:t})})},"notify");var Su={...ir,...Zt,"--prefer":rr,"--file-push-delay":{type:Number,default:(0,fe.default)("100ms")},"--file-watch-debounce":{type:Number,default:(0,fe.default)("300ms")},"--file-watch-poll-interval":{type:Number,default:(0,fe.default)("3s")},"--file-watch-poll-timeout":{type:Number,default:(0,fe.default)("20s")},"--file-watch-rename-timeout":{type:Number,default:(0,fe.default)("1.25s")},"--no-logs":Boolean},_u=s(e=>B`
|
|
4
|
-
Clones your Gadget environment's files to your local machine and keeps it in sync, in order to
|
|
5
|
-
enable local development with your text editor and source code with Git.
|
|
6
|
-
|
|
7
|
-
If your app's local directory already exists, this command first performs a sync to ensure
|
|
8
|
-
that your local and environment directories match, changes are tracked since last sync. If any
|
|
9
|
-
conflicts are detected, they must be resolved before development starts.
|
|
10
|
-
|
|
11
|
-
{gray Usage}
|
|
12
|
-
$ ggt dev [DIRECTORY] [options]
|
|
13
|
-
|
|
14
|
-
DIRECTORY: The directory to sync files to (default: the current directory)
|
|
15
|
-
|
|
16
|
-
{gray Options}
|
|
17
|
-
-a, --app <app_name> Selects the app to sync files with. Default set on ".gadget/sync.json"
|
|
18
|
-
-e, --env <env_name> Selects the environment to sync files with. Default set on ".gadget/sync.json"
|
|
19
|
-
--prefer <source> Auto-select changes from 'local' or 'environment' source on conflict
|
|
20
|
-
--allow-unknown-directory Syncs to any local directory with existing files, even if the ".gadget/sync.json" file is missing
|
|
21
|
-
--allow-different-app Syncs with a different app using the --app command, instead of the one specified in the .gadget/sync.json file
|
|
22
|
-
--log-level <level> Sets the log level for incoming application logs (default: info)
|
|
23
|
-
--no-logs Disables outputting application logs to the console
|
|
24
|
-
--my-logs Only outputs user sourced logs
|
|
25
|
-
|
|
26
|
-
{gray Ignoring files}
|
|
27
|
-
ggt dev uses a .ignore file, similar to .gitignore, to exclude specific files and
|
|
28
|
-
folders from syncing. These files are always ignored:
|
|
29
|
-
|
|
30
|
-
• .DS_Store
|
|
31
|
-
• .gadget
|
|
32
|
-
• .git
|
|
33
|
-
• node_modules
|
|
34
|
-
• .shopify
|
|
35
|
-
|
|
36
|
-
{gray Notes}
|
|
37
|
-
• "ggt dev" only works with development environments
|
|
38
|
-
• "ggt dev" only supports "yarn" v1 for installing dependencies
|
|
39
|
-
• Avoid deleting or moving all of your files while "ggt dev" is running
|
|
40
|
-
|
|
41
|
-
{gray Examples}
|
|
42
|
-
sync an app in a custom path
|
|
43
|
-
{cyanBright $ ggt dev ~/myGadgetApps/myBlog --app myBlogApp}
|
|
44
|
-
|
|
45
|
-
sync with a specific environment and preselect all local changes on conflicts
|
|
46
|
-
{cyanBright $ ggt dev --env main --prefer local}
|
|
47
|
-
|
|
48
|
-
sync a custom path with a specific app, environment and preselect all changes from local on conflicts
|
|
49
|
-
{cyanBright $ ggt dev ~/gadget/example --app=example --env=development --prefer=local}
|
|
50
|
-
`,"usage"),xu=s(async(e,t)=>{if(!await(0,ln.default)("yarn",{nothrow:!0}))throw new Xt;let r=await sr(t._[0]||process.cwd()),i=await nr.loadOrInit(e,{command:"dev",args:t,directory:r});vt({ensureEmptyLineAbove:!0,content:i.sprint()});let n=new or(i),o=await n.hashes(e);if(!o.inSync)if(!i.previousEnvironment||o.localChangesToPush.size===0&&o.onlyDotGadgetFilesChanged)await n.merge(e,{hashes:o,printLocalChangesOptions:{limit:5},printEnvironmentChangesOptions:{limit:5}});else{await n.print(e,{hashes:o});let d=Object.values(K);switch(await er({ensureEmptyLineAbove:!0,choices:o.bothChanged?d:d.filter(T=>T!==K.MERGE),content:Ht.bold("What do you want to do?"),formatChoice:s(T=>{switch(T){case K.CANCEL:return B`Cancel (Ctrl+C)`;case K.MERGE:return B`Merge local and environment's changes`;case K.PUSH:switch(!0){case o.bothChanged:return B`Push local changes and {underline discard environment's} changes`;case o.localChanges.size>0:return B`Push local changes`;case o.environmentChanges.size>0:return B`Discard environment's changes`;default:return nt("no changes to push or discard")}case K.PULL:switch(!0){case o.bothChanged:return B`Pull environment's changes and {underline discard local} changes`;case o.localChanges.size>0:return B`Discard local changes`;case o.environmentChanges.size>0:return B`Pull environment's changes`;default:return nt("no changes to pull or discard")}}},"formatChoice")})){case K.CANCEL:process.exit(0);break;case K.MERGE:await n.merge(e,{hashes:o});break;case K.PUSH:await n.push(e,{command:"dev",hashes:o});break;case K.PULL:await n.pull(e,{hashes:o,force:!0});break}}let a=new Map,f=setInterval(()=>{for(let[d,D]of a)(0,cn.default)().isAfter(D+(0,fe.default)("5s"))&&a.delete(d)},(0,fe.default)("1s")).unref(),l=n.subscribeToEnvironmentChanges(e,{onError:s(d=>e.abort(d),"onError"),beforeChanges:s(({changed:d,deleted:D})=>{for(let T of[...d,...D]){a.set(T,Date.now());let M=an.dirname(T);for(;M!==".";)a.set(M+"/",Date.now()),M=an.dirname(M)}},"beforeChanges")}),u;t["--no-logs"]||(u=n.subscribeToEnvironmentLogs(t,{onError:s(d=>{e.abort(d)},"onError")}));let h=new it,g=Kt(t["--file-push-delay"],async()=>{try{let d=i.gitBranch;if(await i.loadGitBranch(),d!==i.gitBranch){Jt({ensureEmptyLineAbove:!0,content:B`
|
|
51
|
-
Your git branch changed.
|
|
52
|
-
|
|
53
|
-
${d} → ${i.gitBranch}
|
|
54
|
-
`});let T=tr({ensureEmptyLineAbove:!0,content:"Waiting for file changes to settle."});await Qt("3s"),T.succeed()}let D=new it(h.entries());h.clear(),await n.mergeChangesWithEnvironment(e,{changes:D})}catch(d){e.log.error("error sending changes to gadget",{error:d}),e.abort(d)}});e.log.debug("watching",{path:i.directory.path});let p=new Dr(i.directory.path,{ignoreInitial:!0,recursive:!0,ignore:s(d=>i.directory.relative(d).startsWith(".gadget")||i.directory.ignores(d),"ignore"),renameDetection:!0,renameTimeout:t["--file-watch-rename-timeout"],debounce:t["--file-watch-debounce"]},(d,D,T)=>{let M=d==="rename"||d==="renameDir"?T:D,ie=d==="renameDir"||d==="addDir"||d==="unlinkDir",L=i.directory.normalize(M,ie);if(e.log.trace("file event",{event:d,isDirectory:ie,path:L}),M===i.directory.absolute(".ignore"))i.directory.loadIgnoreFile().catch(j=>e.abort(j));else if(i.directory.ignores(M))return;if(a.delete(L)){e.log.trace("ignoring event because we caused it",{event:d,path:L});return}switch(d){case"add":case"addDir":h.set(L,{type:"create"});break;case"rename":case"renameDir":{let j=i.directory.normalize(D,ie);h.set(L,{type:"create",oldPath:j});break}case"change":{h.set(L,{type:"update"});break}case"unlink":case"unlinkDir":{h.set(L,{type:"delete"});break}}g()}).once("error",d=>e.abort(d));e.onAbort(async d=>{e.log.info("stopping",{reason:d}),u?.unsubscribe(),l.unsubscribe(),p.close(),clearInterval(f),await g.flush();try{await n.idle()}catch(D){e.log.error("error while waiting for idle",{error:D})}$t(d)||(on(e,{subtitle:"Uh oh!",message:"An error occurred while syncing files"}),await Yt(e,d))}),vt({ensureEmptyLineAbove:!0,content:B`
|
|
55
|
-
${i.sprint({indent:4})}
|
|
56
|
-
|
|
57
|
-
Waiting for file changes${Vt.ellipsis} {gray Press Ctrl+C to stop}
|
|
58
|
-
`})},"run");export{Su as args,xu as run,_u as usage};
|
|
59
|
-
//# sourceMappingURL=dev-GG6TU3DJ.js.map
|