@factiii/stack 0.1.2 → 0.1.6

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.
Files changed (33) hide show
  1. package/bin/factiii +13 -0
  2. package/dist/cli/pr-check.d.ts +24 -0
  3. package/dist/cli/pr-check.d.ts.map +1 -0
  4. package/dist/cli/pr-check.js +153 -0
  5. package/dist/cli/pr-check.js.map +1 -0
  6. package/dist/plugins/addons/server-mode/index.d.ts.map +1 -1
  7. package/dist/plugins/addons/server-mode/index.js +3 -0
  8. package/dist/plugins/addons/server-mode/index.js.map +1 -1
  9. package/dist/plugins/addons/server-mode/scanfix/mac.d.ts +20 -3
  10. package/dist/plugins/addons/server-mode/scanfix/mac.d.ts.map +1 -1
  11. package/dist/plugins/addons/server-mode/scanfix/mac.js +291 -176
  12. package/dist/plugins/addons/server-mode/scanfix/mac.js.map +1 -1
  13. package/dist/plugins/addons/server-mode/scanfix/tart.d.ts +19 -0
  14. package/dist/plugins/addons/server-mode/scanfix/tart.d.ts.map +1 -0
  15. package/dist/plugins/addons/server-mode/scanfix/tart.js +350 -0
  16. package/dist/plugins/addons/server-mode/scanfix/tart.js.map +1 -0
  17. package/dist/plugins/pipelines/factiii/pr-check.d.ts +35 -0
  18. package/dist/plugins/pipelines/factiii/pr-check.d.ts.map +1 -0
  19. package/dist/plugins/pipelines/factiii/pr-check.js +202 -0
  20. package/dist/plugins/pipelines/factiii/pr-check.js.map +1 -0
  21. package/dist/plugins/pipelines/factiii/utils/workflows.d.ts.map +1 -1
  22. package/dist/plugins/pipelines/factiii/utils/workflows.js +1 -0
  23. package/dist/plugins/pipelines/factiii/utils/workflows.js.map +1 -1
  24. package/dist/plugins/pipelines/factiii/workflows/factiii-cicd-staging.yml +8 -3
  25. package/dist/plugins/pipelines/factiii/workflows/factiii-pr-check.yml +103 -0
  26. package/dist/plugins/servers/mac/staging.d.ts.map +1 -1
  27. package/dist/plugins/servers/mac/staging.js +304 -52
  28. package/dist/plugins/servers/mac/staging.js.map +1 -1
  29. package/dist/utils/github-status.d.ts +39 -0
  30. package/dist/utils/github-status.d.ts.map +1 -0
  31. package/dist/utils/github-status.js +172 -0
  32. package/dist/utils/github-status.js.map +1 -0
  33. package/package.json +3 -3
package/bin/factiii CHANGED
@@ -11,6 +11,7 @@ const { init } = require('../dist/cli/init');
11
11
  const { scan } = require('../dist/cli/scan');
12
12
  const { fix } = require('../dist/cli/fix');
13
13
  const { deploy } = require('../dist/cli/deploy');
14
+ const { prCheck } = require('../dist/cli/pr-check');
14
15
  const { undeploy } = require('../dist/cli/undeploy');
15
16
  const { secrets } = require('../dist/cli/secrets');
16
17
  const { upgrade } = require('../dist/cli/upgrade');
@@ -70,6 +71,18 @@ program
70
71
  await fix(options);
71
72
  });
72
73
 
74
+ // PR Check command (validates builds before merge)
75
+ program
76
+ .command('pr-check')
77
+ .description('Run server/client/mobile builds and report to GitHub (for PR validation)')
78
+ .option('--staging', 'Run on staging server')
79
+ .action(async (options) => {
80
+ const result = await prCheck(options);
81
+ if (!result.success) {
82
+ process.exit(1);
83
+ }
84
+ });
85
+
73
86
  // Deploy command
74
87
  program
75
88
  .command('deploy')
@@ -0,0 +1,24 @@
1
+ /**
2
+ * PR Check Command
3
+ *
4
+ * Validates that server/client/mobile builds succeed before PR merge.
5
+ * Per STANDARDS: Delegates to pipeline plugin for routing.
6
+ *
7
+ * Flow:
8
+ * - When running on server (GITHUB_ACTIONS=true): runs builds, reports to GitHub
9
+ * - When running from dev machine: SSHs to staging and runs pr-check there (if canReach=ssh)
10
+ */
11
+ export interface PRCheckOptions {
12
+ rootDir?: string;
13
+ staging?: boolean;
14
+ }
15
+ export interface PRCheckResult {
16
+ success: boolean;
17
+ error?: string;
18
+ }
19
+ /**
20
+ * Run PR check - entry point for CLI
21
+ */
22
+ export declare function prCheck(options?: PRCheckOptions): Promise<PRCheckResult>;
23
+ export default prCheck;
24
+ //# sourceMappingURL=pr-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-check.d.ts","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAyBD;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAqFlF;AAED,eAAe,OAAO,CAAC"}
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * PR Check Command
4
+ *
5
+ * Validates that server/client/mobile builds succeed before PR merge.
6
+ * Per STANDARDS: Delegates to pipeline plugin for routing.
7
+ *
8
+ * Flow:
9
+ * - When running on server (GITHUB_ACTIONS=true): runs builds, reports to GitHub
10
+ * - When running from dev machine: SSHs to staging and runs pr-check there (if canReach=ssh)
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.prCheck = prCheck;
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const js_yaml_1 = __importDefault(require("js-yaml"));
53
+ const index_js_1 = require("../plugins/index.js");
54
+ const ssh_helper_js_1 = require("../utils/ssh-helper.js");
55
+ const github_status_js_1 = require("../utils/github-status.js");
56
+ const pr_check_js_1 = require("../plugins/pipelines/factiii/pr-check.js");
57
+ const config_helpers_js_1 = require("../utils/config-helpers.js");
58
+ function loadConfig(rootDir) {
59
+ const configPath = path.join(rootDir, 'factiii.yml');
60
+ if (!fs.existsSync(configPath)) {
61
+ return {};
62
+ }
63
+ try {
64
+ return js_yaml_1.default.load(fs.readFileSync(configPath, 'utf8')) ?? {};
65
+ }
66
+ catch {
67
+ return {};
68
+ }
69
+ }
70
+ function formatBuildReport(results) {
71
+ const lines = ['## Factiii PR Check – Build Results\n'];
72
+ for (const r of results) {
73
+ const icon = r.success ? 'āœ…' : 'āŒ';
74
+ lines.push(`### ${icon} ${r.name}`);
75
+ lines.push(r.success ? 'Succeeded' : '```\n' + r.output + '\n```');
76
+ lines.push('');
77
+ }
78
+ return lines.join('\n');
79
+ }
80
+ /**
81
+ * Run PR check - entry point for CLI
82
+ */
83
+ async function prCheck(options = {}) {
84
+ const rootDir = options.rootDir ?? process.cwd();
85
+ const config = loadConfig(rootDir);
86
+ const environments = (0, config_helpers_js_1.extractEnvironments)(config);
87
+ const stagingConfig = environments.staging;
88
+ if (!stagingConfig?.domain) {
89
+ console.log('\nāŒ Staging not configured in factiii.yml (staging.domain required)');
90
+ return { success: false, error: 'Staging not configured' };
91
+ }
92
+ const plugins = await (0, index_js_1.loadRelevantPlugins)(rootDir, config);
93
+ const pipelinePlugin = plugins.find((p) => p.category === 'pipeline');
94
+ if (!pipelinePlugin?.canReach) {
95
+ console.log('\nāŒ No pipeline plugin found');
96
+ return { success: false, error: 'No pipeline plugin' };
97
+ }
98
+ const reach = pipelinePlugin.canReach('staging', config);
99
+ if (!reach.reachable) {
100
+ console.log('\nāŒ Cannot reach staging: ' + reach.reason);
101
+ return { success: false, error: reach.reason };
102
+ }
103
+ // On server: run builds directly and report
104
+ if (process.env.GITHUB_ACTIONS === 'true' || process.env.FACTIII_ON_SERVER === 'true') {
105
+ // When SSH'd from workflow, we're run with cwd=repo (workflow does: cd $REPO_DIR && npx factiii pr-check)
106
+ const repoName = config.name ?? 'app';
107
+ const defaultRepoDir = path.join(process.env.HOME ?? '', '.factiii', repoName);
108
+ const repoDir = fs.existsSync(path.join(process.cwd(), 'factiii.yml'))
109
+ ? process.cwd()
110
+ : defaultRepoDir;
111
+ if (!fs.existsSync(repoDir)) {
112
+ console.log('\nāŒ Repo not found at ' + repoDir);
113
+ return { success: false, error: 'Repo not found' };
114
+ }
115
+ const sha = process.env.COMMIT_HASH ?? process.env.GITHUB_SHA ?? '';
116
+ const prNum = (0, github_status_js_1.getPRNumber)();
117
+ console.log('\nšŸ” Running PR check builds...\n');
118
+ await (0, github_status_js_1.reportCommitStatus)(sha, 'pending', 'Running server/client/mobile builds...', 'factiii/pr-check');
119
+ const buildResult = await (0, pr_check_js_1.runBuilds)(repoDir, config, {
120
+ commit: sha || undefined,
121
+ branch: process.env.BRANCH ?? process.env.GITHUB_REF_NAME,
122
+ });
123
+ const finalState = buildResult.success ? 'success' : 'failure';
124
+ const desc = buildResult.success
125
+ ? 'All builds passed'
126
+ : 'One or more builds failed';
127
+ await (0, github_status_js_1.reportCommitStatus)(sha, finalState, desc, 'factiii/pr-check');
128
+ if (prNum && buildResult.results.length > 0) {
129
+ await (0, github_status_js_1.reportPRComment)(prNum, formatBuildReport(buildResult.results));
130
+ }
131
+ for (const r of buildResult.results) {
132
+ const icon = r.success ? 'āœ…' : 'āŒ';
133
+ console.log(` ${icon} ${r.name}: ${r.success ? 'OK' : r.output}`);
134
+ }
135
+ console.log('\n' + (buildResult.success ? 'āœ… All builds passed' : 'āŒ Build(s) failed'));
136
+ return { success: buildResult.success };
137
+ }
138
+ // From dev machine: SSH to staging and run pr-check there
139
+ if (reach.via === 'ssh') {
140
+ console.log('\nšŸ”— Running PR check via SSH on staging...\n');
141
+ const result = (0, ssh_helper_js_1.sshRemoteFactiiiCommand)('staging', config, 'pr-check --staging');
142
+ return {
143
+ success: result.success,
144
+ error: result.success ? undefined : result.stderr,
145
+ };
146
+ }
147
+ // Workflow: tell user to open a PR
148
+ console.log('\nāš ļø PR check runs automatically when you open a PR to main.');
149
+ console.log(' Ensure factiii-pr-check.yml workflow is committed.');
150
+ return { success: true };
151
+ }
152
+ exports.default = prCheck;
153
+ //# sourceMappingURL=pr-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pr-check.js","sourceRoot":"","sources":["../../src/cli/pr-check.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/addons/server-mode/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,GAAG,EACH,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAOjC,cAAM,eAAe;IAKnB,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB;IACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,iBAAiB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAG/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IAGF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE9D;;;OAGG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAO1B;IAMF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE;IAYzC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;CAGlC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/plugins/addons/server-mode/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,GAAG,EACH,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAQjC,cAAM,eAAe;IAKnB,MAAM,CAAC,QAAQ,CAAC,EAAE,iBAAiB;IACnC,MAAM,CAAC,QAAQ,CAAC,IAAI,iBAAiB;IACrC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,OAAO,WAAW;IAGlC,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,EAAE,CAAM;IAG/C,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEnD;IAGF,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAM;IAE9D;;;OAGG;WACU,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBlF,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,CAS1B;IAMF;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE;IAYzC,OAAO,CAAC,OAAO,CAAgB;gBAEnB,MAAM,EAAE,aAAa;CAGlC;AAED,eAAe,eAAe,CAAC"}
@@ -70,6 +70,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
70
70
  const mac_js_1 = require("./scanfix/mac.js");
71
71
  const ubuntu_js_1 = require("./scanfix/ubuntu.js");
72
72
  const windows_js_1 = require("./scanfix/windows.js");
73
+ const tart_js_1 = require("./scanfix/tart.js");
73
74
  class ServerModeAddon {
74
75
  // ============================================================
75
76
  // STATIC METADATA
@@ -108,6 +109,8 @@ class ServerModeAddon {
108
109
  ...ubuntu_js_1.ubuntuFixes,
109
110
  // Windows fixes
110
111
  ...windows_js_1.windowsFixes,
112
+ // Tart VM infrastructure fixes
113
+ ...tart_js_1.tartFixes,
111
114
  ];
112
115
  // ============================================================
113
116
  // HELPER METHODS
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/addons/server-mode/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,oCAAoC;AACpC,6CAA4C;AAC5C,mDAAkD;AAClD,qDAAoD;AAEpD,MAAM,eAAe;IACnB,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,MAAM,CAAU,EAAE,GAAG,aAAa,CAAC;IACnC,MAAM,CAAU,IAAI,GAAG,aAAa,CAAC;IACrC,MAAM,CAAU,QAAQ,GAAY,OAAO,CAAC;IAC5C,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAElC,+BAA+B;IAC/B,MAAM,CAAU,eAAe,GAAa,EAAE,CAAC;IAE/C,yCAAyC;IACzC,MAAM,CAAU,YAAY,GAA4B;IACtD,8DAA8D;KAC/D,CAAC;IAEF,6CAA6C;IAC7C,MAAM,CAAU,gBAAgB,GAA2B,EAAE,CAAC;IAE9D;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAqB;QAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,kCAAkC,GAAC,CAAC;QACjF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,mDAAmD;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC5C,GAAG,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,uDAAuD;IACvD,+DAA+D;IAC/D,kDAAkD;IAClD,+DAA+D;IAE/D,MAAM,CAAU,KAAK,GAAU;QAC7B,YAAY;QACZ,GAAG,iBAAQ;QACX,eAAe;QACf,GAAG,uBAAW;QACd,gBAAgB;QAChB,GAAG,yBAAY;KAChB,CAAC;IAEF,+DAA+D;IAC/D,iBAAiB;IACjB,+DAA+D;IAE/D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,EAAY;QAC/B,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,mBAAmB;IACnB,+DAA+D;IAEvD,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;;AAGH,kBAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/plugins/addons/server-mode/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,oCAAoC;AACpC,6CAA4C;AAC5C,mDAAkD;AAClD,qDAAoD;AACpD,+CAA8C;AAE9C,MAAM,eAAe;IACnB,+DAA+D;IAC/D,kBAAkB;IAClB,+DAA+D;IAE/D,MAAM,CAAU,EAAE,GAAG,aAAa,CAAC;IACnC,MAAM,CAAU,IAAI,GAAG,aAAa,CAAC;IACrC,MAAM,CAAU,QAAQ,GAAY,OAAO,CAAC;IAC5C,MAAM,CAAU,OAAO,GAAG,OAAO,CAAC;IAElC,+BAA+B;IAC/B,MAAM,CAAU,eAAe,GAAa,EAAE,CAAC;IAE/C,yCAAyC;IACzC,MAAM,CAAU,YAAY,GAA4B;IACtD,8DAA8D;KAC/D,CAAC;IAEF,6CAA6C;IAC7C,MAAM,CAAU,gBAAgB,GAA2B,EAAE,CAAC;IAE9D;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,QAAgB,EAAE,MAAqB;QAC7D,MAAM,EAAE,mBAAmB,EAAE,GAAG,wDAAa,kCAAkC,GAAC,CAAC;QACjF,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAEjD,mDAAmD;QACnD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAC5C,GAAG,CAAC,WAAW,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CACxD,CAAC;IACJ,CAAC;IAED,+DAA+D;IAC/D,uDAAuD;IACvD,+DAA+D;IAC/D,kDAAkD;IAClD,+DAA+D;IAE/D,MAAM,CAAU,KAAK,GAAU;QAC7B,YAAY;QACZ,GAAG,iBAAQ;QACX,eAAe;QACf,GAAG,uBAAW;QACd,gBAAgB;QAChB,GAAG,yBAAY;QACf,+BAA+B;QAC/B,GAAG,mBAAS;KACb,CAAC;IAEF,+DAA+D;IAC/D,iBAAiB;IACjB,+DAA+D;IAE/D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,EAAY;QAC/B,OAAO,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACxC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,OAAO,IAAI,CAAC,CAAC,gCAAgC;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAAE,OAAO,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACtD,OAAO,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,mBAAmB;IACnB,+DAA+D;IAEvD,OAAO,CAAgB;IAE/B,YAAY,MAAqB;QAC/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;;AAGH,kBAAe,eAAe,CAAC"}
@@ -4,13 +4,30 @@
4
4
  * Fixes for configuring Mac as a deployment server HOST (no Docker/dev tools).
5
5
  * Focus: what makes a Mac reliable as a server.
6
6
  *
7
+ * Power Management (pmset):
7
8
  * - Disable sleep (system, disk, display)
8
9
  * - Auto-restart on power loss
9
- * - Don't turn off when inactive (disablesleep)
10
- * - Disable screensaver
10
+ * - Fully disable sleep (disablesleep)
11
+ * - Wake on LAN (womp)
12
+ * - Disable hibernate
13
+ * - Disable standby
14
+ * - Disable Power Nap
15
+ * - Disable proximity wake
16
+ * - Keep awake during SSH (ttyskeepawake)
17
+ *
18
+ * System Services:
19
+ * - Disable screensaver (-currentHost)
11
20
  * - Enable SSH (Remote Login)
12
21
  * - Disable App Nap
13
- * - Auto-login on boot (optional)
22
+ * - Disable Spotlight indexing
23
+ * - Disable Time Machine
24
+ * - Disable auto-update restart
25
+ * - Disable Bluetooth (manual)
26
+ * - Auto-login on boot (manual)
27
+ *
28
+ * Network/Security:
29
+ * - Enable NTP (network time)
30
+ * - Disable file sharing (manual)
14
31
  */
15
32
  import type { Fix } from '../../../../types/index.js';
16
33
  export declare const macFixes: Fix[];
@@ -1 +1 @@
1
- {"version":3,"file":"mac.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/addons/server-mode/scanfix/mac.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,GAAG,EAA2B,MAAM,4BAA4B,CAAC;AAE/E,eAAO,MAAM,QAAQ,EAAE,GAAG,EA8XzB,CAAC"}
1
+ {"version":3,"file":"mac.d.ts","sourceRoot":"","sources":["../../../../../src/plugins/addons/server-mode/scanfix/mac.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,OAAO,KAAK,EAAE,GAAG,EAA2B,MAAM,4BAA4B,CAAC;AA4C/E,eAAO,MAAM,QAAQ,EAAE,GAAG,EAsdzB,CAAC"}