@robinpath/toml 0.1.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 ADDED
@@ -0,0 +1,91 @@
1
+ # @robinpath/toml
2
+
3
+ > Parse, stringify, and manipulate TOML configuration files
4
+
5
+ ![Category](https://img.shields.io/badge/category-Utility-blue) ![Functions](https://img.shields.io/badge/functions-8-green) ![Auth](https://img.shields.io/badge/auth-none-lightgrey) ![License](https://img.shields.io/badge/license-MIT-brightgreen)
6
+
7
+ ## Why use this module?
8
+
9
+ The `toml` module lets you:
10
+
11
+ - Parse a TOML string to object
12
+ - Convert object to TOML string
13
+ - Read and parse a TOML file
14
+ - Write object as TOML to file
15
+ - Get nested value by dot path from TOML string
16
+
17
+ All functions are callable directly from RobinPath scripts with a simple, consistent API.
18
+
19
+ ## Installation
20
+
21
+ ```bash
22
+ npm install @robinpath/toml
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ No credentials needed — start using it right away:
28
+
29
+ ```robinpath
30
+ toml.stringify $config
31
+ ```
32
+
33
+ ## Available Functions
34
+
35
+ | Function | Description |
36
+ |----------|-------------|
37
+ | `toml.parse` | Parse a TOML string to object |
38
+ | `toml.stringify` | Convert object to TOML string |
39
+ | `toml.parseFile` | Read and parse a TOML file |
40
+ | `toml.writeFile` | Write object as TOML to file |
41
+ | `toml.get` | Get nested value by dot path from TOML string |
42
+ | `toml.isValid` | Check if string is valid TOML |
43
+ | `toml.toJSON` | Convert TOML string to JSON string |
44
+ | `toml.fromJSON` | Convert JSON string to TOML string |
45
+
46
+ ## Examples
47
+
48
+ ### Convert object to TOML string
49
+
50
+ ```robinpath
51
+ toml.stringify $config
52
+ ```
53
+
54
+ ### Read and parse a TOML file
55
+
56
+ ```robinpath
57
+ toml.parseFile "config.toml"
58
+ ```
59
+
60
+ ### Write object as TOML to file
61
+
62
+ ```robinpath
63
+ toml.writeFile "config.toml" $obj
64
+ ```
65
+
66
+ ## Integration with RobinPath
67
+
68
+ ```typescript
69
+ import { RobinPath } from "@wiredwp/robinpath";
70
+ import Module from "@robinpath/toml";
71
+
72
+ const rp = new RobinPath();
73
+ rp.registerModule(Module.name, Module.functions);
74
+ rp.registerModuleMeta(Module.name, Module.functionMetadata);
75
+
76
+ const result = await rp.executeScript(`
77
+ toml.stringify $config
78
+ `);
79
+ ```
80
+
81
+ ## Full API Reference
82
+
83
+ See [MODULE.md](./MODULE.md) for complete documentation including all parameters, return types, error handling, and advanced examples.
84
+
85
+ ## Related Modules
86
+
87
+ - [`@robinpath/json`](../json) — JSON module for complementary functionality
88
+
89
+ ## License
90
+
91
+ MIT
@@ -0,0 +1,6 @@
1
+ import type { ModuleAdapter } from "@wiredwp/robinpath";
2
+ declare const TomlModule: ModuleAdapter;
3
+ export default TomlModule;
4
+ export { TomlModule };
5
+ export { TomlFunctions, TomlFunctionMetadata, TomlModuleMetadata } from "./toml.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,UAAU,EAAE,aAMjB,CAAC;AAEF,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { TomlFunctions, TomlFunctionMetadata, TomlModuleMetadata } from "./toml.js";
2
+ const TomlModule = {
3
+ name: "toml",
4
+ functions: TomlFunctions,
5
+ functionMetadata: TomlFunctionMetadata,
6
+ moduleMetadata: TomlModuleMetadata,
7
+ global: false,
8
+ }; // as ModuleAdapter
9
+ export default TomlModule;
10
+ export { TomlModule };
11
+ export { TomlFunctions, TomlFunctionMetadata, TomlModuleMetadata } from "./toml.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpF,MAAM,UAAU,GAAkB;IAChC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,aAAa;IACxB,gBAAgB,EAAE,oBAA2B;IAC7C,cAAc,EAAE,kBAAyB;IACzC,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,UAAU,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC"}
package/dist/toml.d.ts ADDED
@@ -0,0 +1,113 @@
1
+ import type { BuiltinHandler } from "@wiredwp/robinpath";
2
+ export declare const TomlFunctions: Record<string, BuiltinHandler>;
3
+ export declare const TomlFunctionMetadata: {
4
+ parse: {
5
+ description: string;
6
+ parameters: {
7
+ name: string;
8
+ dataType: string;
9
+ description: string;
10
+ formInputType: string;
11
+ required: boolean;
12
+ }[];
13
+ returnType: string;
14
+ returnDescription: string;
15
+ example: string;
16
+ };
17
+ stringify: {
18
+ description: string;
19
+ parameters: {
20
+ name: string;
21
+ dataType: string;
22
+ description: string;
23
+ formInputType: string;
24
+ required: boolean;
25
+ }[];
26
+ returnType: string;
27
+ returnDescription: string;
28
+ example: string;
29
+ };
30
+ parseFile: {
31
+ description: string;
32
+ parameters: {
33
+ name: string;
34
+ dataType: string;
35
+ description: string;
36
+ formInputType: string;
37
+ required: boolean;
38
+ }[];
39
+ returnType: string;
40
+ returnDescription: string;
41
+ example: string;
42
+ };
43
+ writeFile: {
44
+ description: string;
45
+ parameters: {
46
+ name: string;
47
+ dataType: string;
48
+ description: string;
49
+ formInputType: string;
50
+ required: boolean;
51
+ }[];
52
+ returnType: string;
53
+ returnDescription: string;
54
+ example: string;
55
+ };
56
+ get: {
57
+ description: string;
58
+ parameters: {
59
+ name: string;
60
+ dataType: string;
61
+ description: string;
62
+ formInputType: string;
63
+ required: boolean;
64
+ }[];
65
+ returnType: string;
66
+ returnDescription: string;
67
+ example: string;
68
+ };
69
+ isValid: {
70
+ description: string;
71
+ parameters: {
72
+ name: string;
73
+ dataType: string;
74
+ description: string;
75
+ formInputType: string;
76
+ required: boolean;
77
+ }[];
78
+ returnType: string;
79
+ returnDescription: string;
80
+ example: string;
81
+ };
82
+ toJSON: {
83
+ description: string;
84
+ parameters: {
85
+ name: string;
86
+ dataType: string;
87
+ description: string;
88
+ formInputType: string;
89
+ required: boolean;
90
+ }[];
91
+ returnType: string;
92
+ returnDescription: string;
93
+ example: string;
94
+ };
95
+ fromJSON: {
96
+ description: string;
97
+ parameters: {
98
+ name: string;
99
+ dataType: string;
100
+ description: string;
101
+ formInputType: string;
102
+ required: boolean;
103
+ }[];
104
+ returnType: string;
105
+ returnDescription: string;
106
+ example: string;
107
+ };
108
+ };
109
+ export declare const TomlModuleMetadata: {
110
+ description: string;
111
+ methods: string[];
112
+ };
113
+ //# sourceMappingURL=toml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.d.ts","sourceRoot":"","sources":["../src/toml.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,oBAAoB,CAAC;AAsC3F,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAExD,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAShC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;CAG9B,CAAC"}
package/dist/toml.js ADDED
@@ -0,0 +1,51 @@
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ function resolvePath(obj, path) {
3
+ const keys = path.split(".");
4
+ let current = obj;
5
+ for (const key of keys) {
6
+ if (current == null || typeof current !== "object")
7
+ return undefined;
8
+ current = current[key];
9
+ }
10
+ return current;
11
+ }
12
+ const parse = (args) => any(String(args[0] ?? ""));
13
+ const stringify = (args) => any(args[0]);
14
+ const parseFile = (args) => any(readFileSync(String(args[0] ?? ""), "utf-8"));
15
+ const writeFile = (args) => {
16
+ writeFileSync(String(args[0] ?? ""), any(args[1]), "utf-8");
17
+ return true;
18
+ };
19
+ const get = (args) => {
20
+ const obj = any(String(args[0] ?? ""));
21
+ return resolvePath(obj, String(args[1] ?? ""));
22
+ };
23
+ const isValid = (args) => {
24
+ try {
25
+ any(String(args[0] ?? ""));
26
+ return true;
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ };
32
+ const toJSON = (args) => JSON.stringify(any(String(args[0] ?? "")), null, 2);
33
+ const fromJSON = (args) => any(JSON.parse(String(args[0] ?? "")));
34
+ export const TomlFunctions = {
35
+ parse, stringify, parseFile, writeFile, get, isValid, toJSON, fromJSON,
36
+ };
37
+ export const TomlFunctionMetadata = {
38
+ parse: { description: "Parse a TOML string to object", parameters: [{ name: "tomlString", dataType: "string", description: "TOML string", formInputType: "textarea", required: true }], returnType: "object", returnDescription: "Parsed object", example: 'toml.parse "title = \\"My App\\""' },
39
+ stringify: { description: "Convert object to TOML string", parameters: [{ name: "obj", dataType: "object", description: "Object to convert", formInputType: "json", required: true }], returnType: "string", returnDescription: "TOML string", example: "toml.stringify $config" },
40
+ parseFile: { description: "Read and parse a TOML file", parameters: [{ name: "filePath", dataType: "string", description: "Path to TOML file", formInputType: "text", required: true }], returnType: "object", returnDescription: "Parsed object", example: 'toml.parseFile "config.toml"' },
41
+ writeFile: { description: "Write object as TOML to file", parameters: [{ name: "filePath", dataType: "string", description: "Output file path", formInputType: "text", required: true }, { name: "obj", dataType: "object", description: "Object to write", formInputType: "json", required: true }], returnType: "boolean", returnDescription: "True on success", example: 'toml.writeFile "config.toml" $obj' },
42
+ get: { description: "Get nested value by dot path from TOML string", parameters: [{ name: "tomlString", dataType: "string", description: "TOML string", formInputType: "textarea", required: true }, { name: "path", dataType: "string", description: "Dot-separated path", formInputType: "text", required: true }], returnType: "any", returnDescription: "Value at path", example: 'toml.get $toml "database.host"' },
43
+ isValid: { description: "Check if string is valid TOML", parameters: [{ name: "str", dataType: "string", description: "String to check", formInputType: "textarea", required: true }], returnType: "boolean", returnDescription: "True if valid TOML", example: 'toml.isValid "key = 1"' },
44
+ toJSON: { description: "Convert TOML string to JSON string", parameters: [{ name: "tomlString", dataType: "string", description: "TOML string", formInputType: "textarea", required: true }], returnType: "string", returnDescription: "JSON string", example: "toml.toJSON $toml" },
45
+ fromJSON: { description: "Convert JSON string to TOML string", parameters: [{ name: "jsonString", dataType: "string", description: "JSON string", formInputType: "textarea", required: true }], returnType: "string", returnDescription: "TOML string", example: "toml.fromJSON $json" },
46
+ };
47
+ export const TomlModuleMetadata = {
48
+ description: "Parse, stringify, and manipulate TOML configuration files",
49
+ methods: ["parse", "stringify", "parseFile", "writeFile", "get", "isValid", "toJSON", "fromJSON"],
50
+ };
51
+ //# sourceMappingURL=toml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.js","sourceRoot":"","sources":["../src/toml.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@robinpath/toml",
3
+ "version": "0.1.0",
4
+ "publishConfig": { "access": "public" },
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": { ".": { "import": "./dist/index.js", "types": "./dist/index.d.ts" } },
9
+ "files": ["dist"],
10
+ "scripts": { "build": "tsc", "test": "node --import tsx --test tests/*.test.ts" },
11
+ "dependencies": { "smol-toml": "^1.3.0" },
12
+ "peerDependencies": { "@wiredwp/robinpath": ">=0.20.0" },
13
+ "devDependencies": { "@wiredwp/robinpath": "^0.30.1", "tsx": "^4.19.0", "typescript": "^5.6.0" }
14
+ }