ramm 0.0.18 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/a.js ADDED
@@ -0,0 +1,3 @@
1
+ // a.ts
2
+ console.log("WORLD");
3
+ console.log("WORLD");
package/dist/ramm.js CHANGED
@@ -23,6 +23,7 @@ class Context {
23
23
  userspace;
24
24
  sudo;
25
25
  sshKey;
26
+ params = {};
26
27
  constructor({
27
28
  name,
28
29
  address,
@@ -210,7 +211,7 @@ var createNftTable = (allowed_ssh_ipv4) => {
210
211
  iif "lo" accept
211
212
  ct state established,related accept
212
213
  ip saddr @allowed_ssh_ipv4 tcp dport 22 accept
213
- tcp dport 22 ct state new limit rate over 3/minute burst 5 packets drop
214
+ tcp dport 22 ct state new limit rate over 700/minute burst 5 packets drop
214
215
  tcp dport 22 accept
215
216
  tcp dport 80 accept
216
217
  tcp dport 443 accept
@@ -375,6 +376,37 @@ var createCron = async ({
375
376
  await execCommand(`crontab ${tempFile}`);
376
377
  await execCommand(`rm ${tempFile}`);
377
378
  };
379
+ // src/build.ts
380
+ var {build, file: file2 } = globalThis.Bun;
381
+ var buildAndRunOverSsh = async ({
382
+ entrypoint,
383
+ context
384
+ }) => {
385
+ const normalizedEntrypoint = normalizePath(entrypoint);
386
+ const distName = `ramm_dist`;
387
+ const distDir = `/tmp/${distName}`;
388
+ const outputs = await build({
389
+ outdir: distDir,
390
+ entrypoints: [normalizedEntrypoint],
391
+ target: "bun"
392
+ });
393
+ const pathToDistFile = outputs.outputs[0]?.path;
394
+ const relativePathToFile = pathToDistFile.slice(distDir.length + 1);
395
+ await copyFilesBySsh(`${distDir}/`, distDir, context);
396
+ await execBySsh(`bun run ${distDir}/${relativePathToFile}`, context);
397
+ await execCommand(`rm -rf ${distDir}`);
398
+ };
399
+ var passVarsClient = async (data, context) => {
400
+ const json = JSON.stringify(data);
401
+ await writeFile("/tmp/ramm_json", json);
402
+ await copyFilesBySsh("/tmp/ramm_json", "/tmp/ramm_json", context);
403
+ await execCommand("rm -rf /tmp/ramm_json");
404
+ };
405
+ var passVarsServer = async () => {
406
+ const jsonData = await file2("/tmp/ramm_json").json();
407
+ await execCommand("rm -rf /tmp/ramm_json");
408
+ return jsonData;
409
+ };
378
410
  export {
379
411
  writeIfNew,
380
412
  writeFileIfNotMatch,
@@ -383,6 +415,8 @@ export {
383
415
  runPodmanContainerService,
384
416
  runPodmanContainer,
385
417
  restartSystemdService,
418
+ passVarsServer,
419
+ passVarsClient,
386
420
  normalizePath,
387
421
  normalizeFileContent,
388
422
  installSystemPackage,
@@ -395,6 +429,7 @@ export {
395
429
  createCron,
396
430
  createAndAddSshKey,
397
431
  copyFilesBySsh,
432
+ buildAndRunOverSsh,
398
433
  addNftPodmanRule,
399
434
  addKeyToHostConfig,
400
435
  Context
@@ -0,0 +1,7 @@
1
+ import type { Context } from "./context.ts";
2
+ export declare const buildAndRunOverSsh: ({ entrypoint, context, }: {
3
+ entrypoint: string;
4
+ context: Context;
5
+ }) => Promise<void>;
6
+ export declare const passVarsClient: (data: Record<string, any>, context: Context) => Promise<void>;
7
+ export declare const passVarsServer: () => Promise<any>;
@@ -4,6 +4,7 @@ export declare class Context {
4
4
  userspace: boolean;
5
5
  sudo: boolean;
6
6
  sshKey?: string;
7
+ params: Record<string, string>;
7
8
  constructor({ name, address, userspace, sudo, sshKey, }: {
8
9
  name: string;
9
10
  address: string;
@@ -11,3 +11,4 @@ export { writeIfNew, writeFile, writeFileIfNotMatch, normalizeFileContent, } fro
11
11
  export { createAndAddSshKey, getServerFingerprintBySsh, addKeyToHostConfig, } from "./ssh.ts";
12
12
  export { normalizePath } from "./path.ts";
13
13
  export { createCron } from "./cron.ts";
14
+ export { buildAndRunOverSsh, passVarsClient, passVarsServer } from "./build.ts";
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ramm",
3
3
  "type": "module",
4
- "version": "0.0.18",
4
+ "version": "0.0.20",
5
5
  "scripts": {
6
6
  "build": "bun build ./src/ramm.ts --target bun --outdir ./dist && cp ./src/bun.sh ./dist/bun.sh && bun run types",
7
7
  "types": "tsc --project tsconfig.types.json"
@@ -17,5 +17,8 @@
17
17
  "devDependencies": {
18
18
  "@types/bun": "latest",
19
19
  "typescript": "^5.8.2"
20
+ },
21
+ "dependencies": {
22
+ "desy": "^0.0.14"
20
23
  }
21
24
  }
@@ -1,30 +0,0 @@
1
- export function setupNftable(allowedIpSsh: any): Promise<void>;
2
- export function runPodmanContainerService(name: any, command: any, context?: Context): Promise<void>;
3
- export function runPodmanContainer(name: any, command: any): Promise<void>;
4
- export function restartSystemdService(name: any, constext?: Context): Promise<void>;
5
- export function installSystemPackage(packageName: any): Promise<void>;
6
- export function installPodman(): Promise<void>;
7
- export function installBun(context: any): Promise<void>;
8
- export function execBySsh(command: any, context: any): Promise<{
9
- output: string;
10
- spawnResult: import("bun").Subprocess<"inherit", "pipe", "inherit">;
11
- }>;
12
- export function debugBlock(text: any): void;
13
- export function createAndAddSshKey(pathToKey: any, comment: any, context: any): Promise<void>;
14
- export function copyFilesBySsh(from: any, to: any, context: any): Promise<void>;
15
- export function addNftPodmanRule(): Promise<void>;
16
- export class Context {
17
- constructor({ name, address, userspace, sudo, sshKey }: {
18
- name: any;
19
- address: any;
20
- userspace?: boolean | undefined;
21
- sudo?: boolean | undefined;
22
- sshKey: any;
23
- });
24
- name: any;
25
- domain: any;
26
- userspace: boolean;
27
- sudo: boolean;
28
- sshKey: any;
29
- getAddress(): string;
30
- }
@@ -1,15 +0,0 @@
1
- import { Context } from "./context.ts";
2
- export declare const defaultContext: Context;
3
- export declare const execCommand: (command: string) => Promise<{
4
- output: string;
5
- spawnResult: import("bun").Subprocess<"inherit", "pipe", "inherit">;
6
- }>;
7
- export declare const execCommandSilent: (command: string) => Promise<{
8
- output: string;
9
- spawnResult: import("bun").Subprocess<"ignore", "pipe", "inherit">;
10
- }>;
11
- export declare const copyFilesBySsh: (from: string, to: string, context: Context) => Promise<void>;
12
- export declare const execBySsh: (command: string, context: Context) => Promise<{
13
- output: string;
14
- spawnResult: import("bun").Subprocess<"inherit", "pipe", "inherit">;
15
- }>;
@@ -1,15 +0,0 @@
1
- export declare class Context {
2
- name: string;
3
- domain: string;
4
- userspace: boolean;
5
- sudo: boolean;
6
- sshKey?: string;
7
- constructor({ name, address, userspace, sudo, sshKey, }: {
8
- name: string;
9
- address: string;
10
- userspace?: boolean;
11
- sudo?: boolean;
12
- sshKey?: string;
13
- });
14
- getAddress(): string;
15
- }
@@ -1,4 +0,0 @@
1
- export declare const debugSilentCommand: (command: string) => void;
2
- export declare const debugCommand: (command: string) => void;
3
- export declare const debugBlock: (text: string) => void;
4
- export declare const debug: (text: string) => void;
@@ -1,2 +0,0 @@
1
- import type { Context } from "./context.ts";
2
- export declare const installBun: (context: Context) => Promise<void>;
@@ -1,2 +0,0 @@
1
- export declare const localNftChainName = "local_chain";
2
- export declare const setupNftable: (allowedIpSsh: string) => Promise<void>;
@@ -1 +0,0 @@
1
- export declare const installSystemPackage: (packageName: string) => Promise<void>;
@@ -1,6 +0,0 @@
1
- import type { Context } from "./context.ts";
2
- export declare const installPodman: () => Promise<void>;
3
- export declare const getCreateCommand: (name: string) => Promise<string>;
4
- export declare const runPodmanContainer: (name: string, command: string) => Promise<void>;
5
- export declare const runPodmanContainerService: (name: string, command: string, context?: Context) => Promise<void>;
6
- export declare const addNftPodmanRule: () => Promise<void>;
@@ -1,10 +0,0 @@
1
- export { execBySsh, copyFilesBySsh } from "./base.ts";
2
- export { Context } from "./context.ts";
3
- export { installBun } from "./init.ts";
4
- export { installPodman, runPodmanContainer } from "./podman.ts";
5
- export { runPodmanContainerService, addNftPodmanRule } from "./podman.ts";
6
- export { restartSystemdService } from "./systemd.ts";
7
- export { installSystemPackage } from "./packages.ts";
8
- export { debugBlock } from "./debug.ts";
9
- export { setupNftable } from "./nft.ts";
10
- export { createAndAddSshKey } from "./ssh.ts";
@@ -1,2 +0,0 @@
1
- import type { Context } from "../dist/ramm.js";
2
- export declare const createAndAddSshKey: (pathToKey: string, comment: string, context: Context) => Promise<void>;
@@ -1,6 +0,0 @@
1
- import { Context } from "./context.ts";
2
- export declare const getSysyemdServiceName: (name: string) => string;
3
- export declare const stopSystemdService: (constext: Context, name: string) => Promise<void>;
4
- export declare const restartSystemdService: (name: string, constext?: Context) => Promise<void>;
5
- export declare const checkSystemdService: (context: Context, serviceName: string) => Promise<boolean>;
6
- export declare const createSystemdService: (context: Context, serviceName: string, pathToServiceFile: string) => Promise<void>;