pareto-resource-filesystem-unrestricted 0.1.2

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.
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.commands.chmod;
@@ -0,0 +1,63 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //data types
4
+ import * as d from "pareto-resources/interface/generated/liana/schemas/fs_unrestricted_chmod/data";
5
+ //interface
6
+ import * as resources from "pareto-resources/interface/resources";
7
+ //dependencies
8
+ import { chmod as fs_chmod } from "fs";
9
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
10
+ export const $$ = p_.command(($p, on_success, on_error) => {
11
+ // Convert permissions structure to numeric mode
12
+ let mode = 0;
13
+ // Special bits (optional)
14
+ const sb = $p.mode['special bits'].__get_raw();
15
+ if (sb !== null) {
16
+ if (sb[0].setuid) {
17
+ mode += 0o4000;
18
+ }
19
+ if (sb[0].setgid) {
20
+ mode += 0o2000;
21
+ }
22
+ if (sb[0].sticky) {
23
+ mode += 0o1000;
24
+ }
25
+ }
26
+ // Owner, group, others
27
+ function permissions_to_octal(permissions) {
28
+ let value = 0;
29
+ if (permissions.read) {
30
+ value += 4;
31
+ }
32
+ if (permissions.write) {
33
+ value += 2;
34
+ }
35
+ if (permissions.execute) {
36
+ value += 1;
37
+ }
38
+ return value;
39
+ }
40
+ mode += permissions_to_octal($p.mode.owner) * 0o100;
41
+ mode += permissions_to_octal($p.mode.group) * 0o10;
42
+ mode += permissions_to_octal($p.mode.others) * 0o1;
43
+ fs_chmod(t_path_to_text.Node_Path($p.path), mode, (err) => {
44
+ if (err) {
45
+ on_error({
46
+ 'path': $p.path,
47
+ 'type': p_change_context(null, () => {
48
+ if (err.code === 'ENOENT') {
49
+ return ['path does not exist', null];
50
+ }
51
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
52
+ return ['permission denied', null];
53
+ }
54
+ throw new Error(`unhandled fs.chmod error code: ${err.code}`);
55
+ })
56
+ });
57
+ }
58
+ else {
59
+ on_success();
60
+ }
61
+ });
62
+ });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2htb2QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvY2htb2QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDREQUE0RCxDQUFBO0FBRXpGLFlBQVk7QUFDWixPQUFPLEtBQUssQ0FBQyxNQUFNLCtFQUErRSxDQUFBO0FBRWxHLFdBQVc7QUFDWCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFBO0FBRWpFLGNBQWM7QUFDZCxPQUFPLEVBQUUsS0FBSyxJQUFJLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN0QyxPQUFPLEtBQUssY0FBYyxNQUFNLDRFQUE0RSxDQUFBO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBcUQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDeEcsZ0RBQWdEO0lBQ2hELElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQTtJQUVaLDBCQUEwQjtJQUUxQixNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFBO0lBQzlDLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2QsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZixJQUFJLElBQUksTUFBTSxDQUFBO1FBQ2xCLENBQUM7UUFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxNQUFNLENBQUE7UUFDbEIsQ0FBQztRQUNELElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2YsSUFBSSxJQUFJLE1BQU0sQ0FBQTtRQUNsQixDQUFDO0lBQ0wsQ0FBQztJQUVELHVCQUF1QjtJQUV2QixTQUFTLG9CQUFvQixDQUFDLFdBQTBCO1FBQ3BELElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQTtRQUNiLElBQUksV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25CLEtBQUssSUFBSSxDQUFDLENBQUE7UUFDZCxDQUFDO1FBQ0QsSUFBSSxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDcEIsS0FBSyxJQUFJLENBQUMsQ0FBQTtRQUNkLENBQUM7UUFDRCxJQUFJLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN0QixLQUFLLElBQUksQ0FBQyxDQUFBO1FBQ2QsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxJQUFJLElBQUksb0JBQW9CLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUE7SUFDbkQsSUFBSSxJQUFJLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFBO0lBQ2xELElBQUksSUFBSSxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEdBQUcsQ0FBQTtJQUVsRCxRQUFRLENBQ0osY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ2pDLElBQUksRUFDSixDQUFDLEdBQUcsRUFBRSxFQUFFO1FBQ0osSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLFFBQVEsQ0FBQztnQkFDTCxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0JBQ2YsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ2hDLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUN4QyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDaEQsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUN0QyxDQUFDO29CQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNqRSxDQUFDLENBQUM7YUFDTCxDQUFDLENBQUE7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLFVBQVUsRUFBRSxDQUFBO1FBQ2hCLENBQUM7SUFDTCxDQUFDLENBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.commands.copy;
@@ -0,0 +1,48 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //interface
4
+ import * as resources from "pareto-resources/interface/resources";
5
+ //dependencies
6
+ import { cp as fs_cp } from "fs";
7
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
8
+ export const $$ = p_.command(($p, on_success, on_error) => {
9
+ const options = {};
10
+ if ($p.options.recursive) {
11
+ options.recursive = true;
12
+ }
13
+ if ($p.options.force) {
14
+ options.force = true;
15
+ }
16
+ if ($p.options.errorOnExist) {
17
+ options.errorOnExist = true;
18
+ }
19
+ fs_cp(t_path_to_text.Node_Path($p.source), t_path_to_text.Node_Path($p.target), options, (err) => {
20
+ if (err) {
21
+ on_error({
22
+ 'path': $p.source,
23
+ 'type': p_change_context(null, () => {
24
+ if (err.code === 'ENOENT') {
25
+ return ['source does not exist', null];
26
+ }
27
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
28
+ return ['permission denied', null];
29
+ }
30
+ if (err.code === 'EISDIR' || err.code === 'ERR_FS_EISDIR') {
31
+ return ['node is not a file', null];
32
+ }
33
+ if (err.code === 'EFBIG') {
34
+ return ['file too large', null];
35
+ }
36
+ if (err.code === 'EIO' || err.code === 'ENXIO') {
37
+ return ['device not ready', null];
38
+ }
39
+ throw new Error(`unhandled fs.cp error code: ${err.code}`);
40
+ })
41
+ });
42
+ }
43
+ else {
44
+ on_success();
45
+ }
46
+ });
47
+ });
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9jb3B5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekQsT0FBTyxnQkFBZ0IsTUFBTSw0REFBNEQsQ0FBQTtBQUV6RixXQUFXO0FBQ1gsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQTtBQUVqRSxjQUFjO0FBQ2QsT0FBTyxFQUFFLEVBQUUsSUFBSSxLQUFLLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDaEMsT0FBTyxLQUFLLGNBQWMsTUFBTSw0RUFBNEUsQ0FBQTtBQUU1RyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQW9ELEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQ3ZHLE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQTtJQUN2QixJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdkIsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7SUFDNUIsQ0FBQztJQUNELElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQTtJQUN4QixDQUFDO0lBQ0QsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFBO0lBQy9CLENBQUM7SUFFRCxLQUFLLENBQ0QsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQ25DLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUNuQyxPQUFPLEVBQ1AsQ0FBQyxHQUFHLEVBQUUsRUFBRTtRQUNKLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNO2dCQUNqQixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQzFDLENBQUM7b0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUNoRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ3RDLENBQUM7b0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRSxDQUFDO3dCQUN4RCxPQUFPLENBQUMsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ3ZDLENBQUM7b0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUN2QixPQUFPLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ25DLENBQUM7b0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUM3QyxPQUFPLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ3JDLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQzlELENBQUMsQ0FBQzthQUNMLENBQUMsQ0FBQTtRQUNOLENBQUM7YUFBTSxDQUFDO1lBQ0osVUFBVSxFQUFFLENBQUE7UUFDaEIsQ0FBQztJQUNMLENBQUMsQ0FDSixDQUFBO0FBQ0wsQ0FBQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.commands.make_directory;
@@ -0,0 +1,55 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //interface
4
+ import * as resources from "pareto-resources/interface/resources";
5
+ //dependencies
6
+ import { mkdir as fs_mkdir } from "fs";
7
+ import { rm as fs_remove } from "fs";
8
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
9
+ export const $$ = p_.command(($p, on_success, on_error) => {
10
+ const make_directory = () => {
11
+ fs_mkdir(t_path_to_text.Node_Path($p.path), {
12
+ 'recursive': true,
13
+ }, (err, path) => {
14
+ if (err) {
15
+ on_error({
16
+ 'path': $p.path,
17
+ 'type': p_change_context(null, () => {
18
+ if (err.code === 'EEXIST') {
19
+ return ['directory already exists', null];
20
+ }
21
+ throw new Error(`unhandled fs.mkdir error code: ${err.code}`);
22
+ })
23
+ });
24
+ }
25
+ else {
26
+ on_success();
27
+ }
28
+ });
29
+ };
30
+ if ($p['delete existing']) {
31
+ fs_remove(t_path_to_text.Node_Path($p.path), {
32
+ 'recursive': true,
33
+ 'force': true,
34
+ }, (err) => {
35
+ if (err) {
36
+ on_error({
37
+ 'path': $p.path,
38
+ 'type': p_change_context(null, () => {
39
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
40
+ return ['permission denied', null];
41
+ }
42
+ throw new Error(`unhandled fs.rm error code: ${err.code}`);
43
+ })
44
+ });
45
+ }
46
+ else {
47
+ make_directory();
48
+ }
49
+ });
50
+ }
51
+ else {
52
+ make_directory();
53
+ }
54
+ });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFrZV9kaXJlY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbWFrZV9kaXJlY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDREQUE0RCxDQUFBO0FBRXpGLFdBQVc7QUFDWCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFBO0FBRWpFLGNBQWM7QUFDZCxPQUFPLEVBQUUsS0FBSyxJQUFJLFFBQVEsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUN0QyxPQUFPLEVBQUUsRUFBRSxJQUFJLFNBQVMsRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNwQyxPQUFPLEtBQUssY0FBYyxNQUFNLDRFQUE0RSxDQUFBO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBOEQsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDakgsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO1FBQ3hCLFFBQVEsQ0FDSixjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDakM7WUFDSSxXQUFXLEVBQUUsSUFBSTtTQUNwQixFQUNELENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ1YsSUFBSSxHQUFHLEVBQUUsQ0FBQztnQkFDTixRQUFRLENBQUM7b0JBQ0wsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJO29CQUNmLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFO3dCQUNoQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7NEJBQ3hCLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQTt3QkFDN0MsQ0FBQzt3QkFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGtDQUFrQyxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQTtvQkFDakUsQ0FBQyxDQUFDO2lCQUNMLENBQUMsQ0FBQTtZQUNOLENBQUM7aUJBQU0sQ0FBQztnQkFDSixVQUFVLEVBQUUsQ0FBQTtZQUNoQixDQUFDO1FBQ0wsQ0FBQyxDQUNKLENBQUE7SUFDTCxDQUFDLENBQUE7SUFDRCxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLENBQUM7UUFDeEIsU0FBUyxDQUNMLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNqQztZQUNJLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLE9BQU8sRUFBRSxJQUFJO1NBQ2hCLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sUUFBUSxDQUFDO29CQUNMLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDOzRCQUNoRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUE7d0JBQ3RDLENBQUM7d0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQzlELENBQUMsQ0FBQztpQkFDTCxDQUFDLENBQUE7WUFDTixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osY0FBYyxFQUFFLENBQUE7WUFDcEIsQ0FBQztRQUNMLENBQUMsQ0FDSixDQUFBO0lBRUwsQ0FBQztTQUFNLENBQUM7UUFDSixjQUFjLEVBQUUsQ0FBQTtJQUNwQixDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.commands.remove;
@@ -0,0 +1,39 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //interface
4
+ import * as resources from "pareto-resources/interface/resources";
5
+ //dependencies
6
+ import { rm as fs_rm } from "fs";
7
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
8
+ export const $$ = p_.command(($p, on_success, on_error) => {
9
+ fs_rm(t_path_to_text.Context_Path($p.path), {
10
+ 'recursive': true,
11
+ }, (err) => {
12
+ if (err) {
13
+ if (err.code === 'ENOENT' && !$p['error if not exists']) {
14
+ on_success();
15
+ }
16
+ else {
17
+ on_error({
18
+ 'path': $p.path,
19
+ 'type': p_change_context(null, () => {
20
+ if (err.code === 'ENOENT') {
21
+ return ['node does not exist', null];
22
+ }
23
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
24
+ return ['permission denied', null];
25
+ }
26
+ if (err.code === 'ENOTDIR') {
27
+ throw new Error(`FIXME: implement ENOTDIR error handling (path: ${t_path_to_text.Context_Path($p.path)})`);
28
+ }
29
+ throw new Error(`unhandled fs.rm error code: ${err.code}`);
30
+ })
31
+ });
32
+ }
33
+ }
34
+ else {
35
+ on_success();
36
+ }
37
+ });
38
+ });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL3JlbW92ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3pELE9BQU8sZ0JBQWdCLE1BQU0sNERBQTRELENBQUE7QUFFekYsV0FBVztBQUNYLE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUE7QUFFakUsY0FBYztBQUNkLE9BQU8sRUFBRSxFQUFFLElBQUksS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ2hDLE9BQU8sS0FBSyxjQUFjLE1BQU0sNEVBQTRFLENBQUE7QUFHNUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFzRCxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUN6RyxLQUFLLENBQ0QsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQ3BDO1FBQ0ksV0FBVyxFQUFFLElBQUk7S0FDcEIsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO1FBRUosSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksQ0FBQyxFQUFFLENBQUMscUJBQXFCLENBQUMsRUFBRSxDQUFDO2dCQUN0RCxVQUFVLEVBQUUsQ0FBQTtZQUNoQixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osUUFBUSxDQUFDO29CQUNMLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDOzRCQUN4QixPQUFPLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUE7d0JBQ3hDLENBQUM7d0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDOzRCQUNoRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUE7d0JBQ3RDLENBQUM7d0JBQ0QsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDOzRCQUN6QixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7d0JBQzlHLENBQUM7d0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQzlELENBQUMsQ0FBQztpQkFDTCxDQUFDLENBQUE7WUFDTixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixVQUFVLEVBQUUsQ0FBQTtRQUNoQixDQUFDO0lBQ0wsQ0FBQyxDQUNKLENBQUE7QUFDTCxDQUFDLENBQUMsQ0FBQSJ9
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.commands.write_file;
@@ -0,0 +1,43 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ import p_text_from_list from 'pareto-core/implementation/transformer/specials/text_from_list';
4
+ //interface
5
+ import * as resources from "pareto-resources/interface/resources";
6
+ //dependencies
7
+ import { mkdir as fs_mkdir, writeFile as fs_writeFile } from "fs";
8
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
9
+ export const $$ = p_.command(($p, on_success, on_error) => {
10
+ fs_mkdir(t_path_to_text.Context_Path($p.path.context), {
11
+ 'recursive': true
12
+ }, (err, path) => {
13
+ if (err) {
14
+ on_error({
15
+ 'path': $p.path,
16
+ 'type': p_change_context(null, () => {
17
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
18
+ return ['permission denied', null];
19
+ }
20
+ throw new Error(`unhandled fs.writeFile error code: ${err.code}`);
21
+ })
22
+ });
23
+ return;
24
+ }
25
+ fs_writeFile(t_path_to_text.Node_Path($p.path), p_text_from_list($p.data, ($) => $), (err) => {
26
+ if (err) {
27
+ on_error({
28
+ 'path': $p.path,
29
+ 'type': p_change_context(null, () => {
30
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
31
+ return ['permission denied', null];
32
+ }
33
+ throw new Error(`unhandled fs.writeFile error code: ${err.code}`);
34
+ })
35
+ });
36
+ }
37
+ else {
38
+ on_success();
39
+ }
40
+ });
41
+ });
42
+ });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGVfZmlsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy93cml0ZV9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekQsT0FBTyxnQkFBZ0IsTUFBTSw0REFBNEQsQ0FBQTtBQUN6RixPQUFPLGdCQUFnQixNQUFNLGdFQUFnRSxDQUFBO0FBRTdGLFdBQVc7QUFDWCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFBO0FBRWpFLGNBQWM7QUFDZCxPQUFPLEVBQUUsS0FBSyxJQUFJLFFBQVEsRUFBRSxTQUFTLElBQUksWUFBWSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQ2pFLE9BQU8sS0FBSyxjQUFjLE1BQU0sNEVBQTRFLENBQUE7QUFFNUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUEwRCxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRTtJQUU3RyxRQUFRLENBQ0osY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUM1QztRQUNJLFdBQVcsRUFBRSxJQUFJO0tBQ3BCLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDVixJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ04sUUFBUSxDQUFDO2dCQUNMLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtnQkFDZixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO3dCQUNoRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ3RDLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ3JFLENBQUMsQ0FBQzthQUNMLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDVixDQUFDO1FBQ0QsWUFBWSxDQUNSLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNqQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbkMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ04sUUFBUSxDQUFDO29CQUNMLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSTtvQkFDZixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDOzRCQUNoRCxPQUFPLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLENBQUE7d0JBQ3RDLENBQUM7d0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQ3JFLENBQUMsQ0FBQztpQkFDTCxDQUFDLENBQUE7WUFDTixDQUFDO2lCQUFNLENBQUM7Z0JBQ0osVUFBVSxFQUFFLENBQUE7WUFDaEIsQ0FBQztRQUNMLENBQUMsQ0FDSixDQUFBO0lBQ0wsQ0FBQyxDQUNKLENBQUE7QUFDTCxDQUFDLENBQUMsQ0FBQSJ9
@@ -0,0 +1,14 @@
1
+ export declare const $: {
2
+ commands: {
3
+ chmod: import("pareto-resources/interface/resources").filesystem_unrestricted.commands.chmod;
4
+ copy: import("pareto-resources/interface/resources").filesystem_unrestricted.commands.copy;
5
+ 'make directory': import("pareto-resources/interface/resources").filesystem_unrestricted.commands.make_directory;
6
+ remove: import("pareto-resources/interface/resources").filesystem_unrestricted.commands.remove;
7
+ 'write file': import("pareto-resources/interface/resources").filesystem_unrestricted.commands.write_file;
8
+ };
9
+ queries: {
10
+ 'read directory': import("pareto-resources/interface/resources").filesystem_unrestricted.queries.read_directory;
11
+ 'read file': import("pareto-resources/interface/resources").filesystem_unrestricted.queries.read_file;
12
+ 'stat possible node': import("pareto-resources/interface/resources").filesystem_unrestricted.queries.stat_possible_node;
13
+ };
14
+ };
package/dist/index.js ADDED
@@ -0,0 +1,26 @@
1
+ import * as p_ from 'pareto-core/interface/resource';
2
+ import { $$ as p_fs_unrestricted_chmod } from "./commands/chmod.js";
3
+ import { $$ as p_fs_unrestricted_copy } from "./commands/copy.js";
4
+ import { $$ as p_fs_unrestricted_make_directory } from "./commands/make_directory.js";
5
+ import { $$ as p_fs_unrestricted_remove } from "./commands/remove.js";
6
+ import { $$ as p_fs_unrestricted_write_file } from "./commands/write_file.js";
7
+ import { $$ as q_fs_unrestricted_read_directory } from "./queries/read_directory.js";
8
+ import { $$ as q_fs_unrestricted_read_file } from "./queries/read_file.js";
9
+ // import { $$ as q_fs_unrestricted_stat } from "./queries/stat.js"
10
+ import { $$ as q_fs_unrestricted_stat_possible_node } from "./queries/stat_possible_node.js";
11
+ export const $ = {
12
+ 'commands': {
13
+ 'chmod': p_fs_unrestricted_chmod,
14
+ 'copy': p_fs_unrestricted_copy,
15
+ 'make directory': p_fs_unrestricted_make_directory,
16
+ 'remove': p_fs_unrestricted_remove,
17
+ 'write file': p_fs_unrestricted_write_file,
18
+ },
19
+ 'queries': {
20
+ 'read directory': q_fs_unrestricted_read_directory,
21
+ 'read file': q_fs_unrestricted_read_file,
22
+ // 'stat': q_fs_unrestricted_stat,
23
+ 'stat possible node': q_fs_unrestricted_stat_possible_node,
24
+ }
25
+ };
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUVwRCxPQUFPLEVBQUUsRUFBRSxJQUFJLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkUsT0FBTyxFQUFFLEVBQUUsSUFBSSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLElBQUksZ0NBQWdDLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNyRixPQUFPLEVBQUUsRUFBRSxJQUFJLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDckUsT0FBTyxFQUFFLEVBQUUsSUFBSSw0QkFBNEIsRUFBRSxNQUFNLDBCQUEwQixDQUFBO0FBRTdFLE9BQU8sRUFBRSxFQUFFLElBQUksZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQTtBQUNwRixPQUFPLEVBQUUsRUFBRSxJQUFJLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUE7QUFDMUUsbUVBQW1FO0FBQ25FLE9BQU8sRUFBRSxFQUFFLElBQUksb0NBQW9DLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUU1RixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUc7SUFDYixVQUFVLEVBQUU7UUFDUixPQUFPLEVBQUUsdUJBQXVCO1FBQ2hDLE1BQU0sRUFBRSxzQkFBc0I7UUFDOUIsZ0JBQWdCLEVBQUUsZ0NBQWdDO1FBQ2xELFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsWUFBWSxFQUFFLDRCQUE0QjtLQUU3QztJQUNELFNBQVMsRUFBRTtRQUNQLGdCQUFnQixFQUFFLGdDQUFnQztRQUNsRCxXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLGtDQUFrQztRQUNsQyxvQkFBb0IsRUFBRSxvQ0FBb0M7S0FDN0Q7Q0FDa0IsQ0FBQSJ9
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.queries.read_directory;
@@ -0,0 +1,54 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import * as p_r from 'pareto-core/implementation/refiner';
3
+ import * as p_di from 'pareto-core/interface/data';
4
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
5
+ import p_unreachable_code_path from 'pareto-core/implementation/transformer/specials/unreachable_code_path';
6
+ //interface
7
+ import * as resources from "pareto-resources/interface/resources";
8
+ //data types
9
+ import * as d_xxx from "pareto-resources/interface/generated/liana/schemas/fs_unrestricted_read_directory/data";
10
+ //dependencies
11
+ import { readdir as fs_readdir } from "fs";
12
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
13
+ import * as t_path_to_path from "pareto-resources/implementation/manual/transformers/unrestricted_path/unrestricted_path";
14
+ export const $$ = p_.query(($p, on_value, on_error) => {
15
+ fs_readdir(t_path_to_text.Context_Path($p.path), {
16
+ 'encoding': 'utf-8',
17
+ 'withFileTypes': true,
18
+ }, (err, nodes) => {
19
+ if (err) {
20
+ on_error({
21
+ 'path': $p.path,
22
+ 'type': p_change_context(null, () => {
23
+ if (err.code === 'ENOENT') {
24
+ return ['directory does not exist', null];
25
+ }
26
+ if (err.code === 'ENOTDIR' || err.code === 'EISDIR') {
27
+ return ['node is not a directory', null];
28
+ }
29
+ throw new Error(`unhandled fs.readdir error code: ${err.code}`);
30
+ })
31
+ });
32
+ }
33
+ else {
34
+ const nodes2 = nodes.map(($) => ({
35
+ 'id': $.name,
36
+ 'value': {
37
+ 'node type': $.isFile()
38
+ ? ['file', null]
39
+ : $.isDirectory()
40
+ ? ['directory', null]
41
+ : ['other', null],
42
+ 'context directory': $p.path,
43
+ 'path': t_path_to_path.create_node_path($p.path, {
44
+ 'node': $.name,
45
+ })
46
+ }
47
+ }));
48
+ on_value(p_r.from.list(p_.literal.list(nodes2)).convert_to_dictionary(($) => $.id, ($) => $.value, {
49
+ duplicate_id: ($) => p_unreachable_code_path("the nodejs api guarantees that all items will have a unique name")
50
+ }));
51
+ }
52
+ });
53
+ });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZF9kaXJlY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcXVlcmllcy9yZWFkX2RpcmVjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxNQUFNLHFDQUFxQyxDQUFBO0FBQ3pELE9BQU8sS0FBSyxHQUFHLE1BQU0sb0NBQW9DLENBQUE7QUFDekQsT0FBTyxLQUFLLElBQUksTUFBTSw0QkFBNEIsQ0FBQTtBQUNsRCxPQUFPLGdCQUFnQixNQUFNLDREQUE0RCxDQUFBO0FBRXpGLE9BQU8sdUJBQXVCLE1BQU0sdUVBQXVFLENBQUE7QUFHM0csV0FBVztBQUNYLE9BQU8sS0FBSyxTQUFTLE1BQU0sc0NBQXNDLENBQUE7QUFFakUsWUFBWTtBQUNaLE9BQU8sS0FBSyxLQUFLLE1BQU0sd0ZBQXdGLENBQUE7QUFFL0csY0FBYztBQUNkLE9BQU8sRUFBRSxPQUFPLElBQUksVUFBVSxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBQzFDLE9BQU8sS0FBSyxjQUFjLE1BQU0sNEVBQTRFLENBQUE7QUFDNUcsT0FBTyxLQUFLLGNBQWMsTUFBTSx5RkFBeUYsQ0FBQTtBQVF6SCxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQTZELEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQzVHLFVBQVUsQ0FDTixjQUFjLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFDcEM7UUFDSSxVQUFVLEVBQUUsT0FBTztRQUNuQixlQUFlLEVBQUUsSUFBSTtLQUN4QixFQUNELENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ1gsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLFFBQVEsQ0FBQztnQkFDTCxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUk7Z0JBQ2YsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ2hDLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUM3QyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDbEQsT0FBTyxDQUFDLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUM1QyxDQUFDO29CQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNuRSxDQUFDLENBQUM7YUFDTCxDQUFDLENBQUE7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQWlDLEVBQUUsQ0FBQyxDQUFDO2dCQUM1RCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osT0FBTyxFQUFFO29CQUNMLFdBQVcsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO3dCQUNuQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO3dCQUNoQixDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRTs0QkFDYixDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDOzRCQUNyQixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDO29CQUN6QixtQkFBbUIsRUFBRSxFQUFFLENBQUMsSUFBSTtvQkFDNUIsTUFBTSxFQUFFLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FDbkMsRUFBRSxDQUFDLElBQUksRUFDUDt3QkFDSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLElBQUk7cUJBQ2pCLENBQ0o7aUJBQ0o7YUFDSixDQUFDLENBQUMsQ0FBQTtZQUNILFFBQVEsQ0FDSixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDVCxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FDMUIsQ0FBQyxxQkFBcUIsQ0FDbkIsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ1gsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQ2Q7Z0JBQ0ksWUFBWSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxrRUFBa0UsQ0FBQzthQUNuSCxDQUNKLENBQ0osQ0FBQTtRQUNMLENBQUM7SUFDTCxDQUFDLENBQ0osQ0FBQTtBQUNMLENBQUMsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.queries.read_file;
@@ -0,0 +1,39 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ import p_list_from_text from 'pareto-core/implementation/refiner/specials/list_from_text';
4
+ //interface
5
+ import * as resources from "pareto-resources/interface/resources";
6
+ //dependencies
7
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
8
+ import { readFile as fs_readFile } from "fs";
9
+ export const $$ = p_.query(($p, on_value, on_error) => {
10
+ fs_readFile(t_path_to_text.Node_Path($p), { 'encoding': 'utf-8' }, (err, data) => {
11
+ if (err) {
12
+ on_error({
13
+ 'path': $p,
14
+ 'type': p_change_context(null, () => {
15
+ if (err.code === 'ENOENT') {
16
+ return ['file does not exist', null];
17
+ }
18
+ if (err.code === 'EACCES' || err.code === 'EPERM') {
19
+ return ['permission denied', null];
20
+ }
21
+ if (err.code === 'EISDIR' || err.code === 'ENOTDIR') {
22
+ return ['node is not a file', null];
23
+ }
24
+ if (err.code === 'EFBIG') {
25
+ return ['file too large', null];
26
+ }
27
+ if (err.code === 'EIO' || err.code === 'ENXIO') {
28
+ return ['device not ready', null];
29
+ }
30
+ throw new Error(`unhandled fs.readFile error code: ${err.code}`);
31
+ })
32
+ });
33
+ }
34
+ else {
35
+ on_value(p_list_from_text(data, ($) => $));
36
+ }
37
+ });
38
+ });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZF9maWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXMvcmVhZF9maWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekQsT0FBTyxnQkFBZ0IsTUFBTSw0REFBNEQsQ0FBQTtBQUN6RixPQUFPLGdCQUFnQixNQUFNLDREQUE0RCxDQUFBO0FBR3pGLFdBQVc7QUFDWCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFBO0FBRWpFLGNBQWM7QUFDZCxPQUFPLEtBQUssY0FBYyxNQUFNLDRFQUE0RSxDQUFBO0FBQzVHLE9BQU8sRUFBRSxRQUFRLElBQUksV0FBVyxFQUFFLE1BQU0sSUFBSSxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBd0QsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDdkcsV0FBVyxDQUNQLGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQzVCLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxFQUN2QixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNWLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixRQUFRLENBQUM7Z0JBQ0wsTUFBTSxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxFQUFFLGdCQUFnQixDQUFDLElBQUksRUFBRSxHQUFHLEVBQUU7b0JBQ2hDLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQzt3QkFDeEIsT0FBTyxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUN4QyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDaEQsT0FBTyxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUN0QyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxRQUFRLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDbEQsT0FBTyxDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUN2QyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDdkIsT0FBTyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUNuQyxDQUFDO29CQUNELElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxLQUFLLElBQUksR0FBRyxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQzt3QkFDN0MsT0FBTyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFBO29CQUNyQyxDQUFDO29CQUNELE1BQU0sSUFBSSxLQUFLLENBQUMscUNBQXFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFBO2dCQUNwRSxDQUFDLENBQUM7YUFDTCxDQUFDLENBQUE7UUFDTixDQUFDO2FBQU0sQ0FBQztZQUNKLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDckIsSUFBSSxFQUNKLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQ1gsQ0FBQyxDQUFBO1FBQ04sQ0FBQztJQUNMLENBQUMsQ0FDSixDQUFBO0FBQ0wsQ0FBQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.queries.stat;
@@ -0,0 +1,26 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //interface
4
+ import * as resources from "pareto-resources/interface/resources";
5
+ //dependencies
6
+ import { stat as fs_stat } from "fs";
7
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
8
+ export const $$ = p_.query(($p, on_value, on_error) => {
9
+ fs_stat(t_path_to_text.Node_Path($p), (err, stats) => {
10
+ if (err) {
11
+ on_error({
12
+ 'path': $p,
13
+ 'type': p_change_context(null, () => {
14
+ if (err.code === 'ENOENT') {
15
+ return ['node does not exist', null];
16
+ }
17
+ throw new Error(`unhandled fs.stat error code: ${err.code}`);
18
+ })
19
+ });
20
+ }
21
+ on_value(stats.isFile()
22
+ ? ['file', null]
23
+ : ['directory', null]);
24
+ });
25
+ });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9xdWVyaWVzL3N0YXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQTtBQUN6RCxPQUFPLGdCQUFnQixNQUFNLDREQUE0RCxDQUFBO0FBR3pGLFdBQVc7QUFDWCxPQUFPLEtBQUssU0FBUyxNQUFNLHNDQUFzQyxDQUFBO0FBRWpFLGNBQWM7QUFDZCxPQUFPLEVBQUUsSUFBSSxJQUFJLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQTtBQUNwQyxPQUFPLEtBQUssY0FBYyxNQUFNLDRFQUE0RSxDQUFBO0FBRTVHLE1BQU0sQ0FBQyxNQUFNLEVBQUUsR0FBbUQsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEVBQUU7SUFDbEcsT0FBTyxDQUNILGNBQWMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQzVCLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFO1FBQ1gsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNOLFFBQVEsQ0FBQztnQkFDTCxNQUFNLEVBQUUsRUFBRTtnQkFDVixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTtvQkFDaEMsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixPQUFPLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLENBQUE7b0JBQ3hDLENBQUM7b0JBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7Z0JBQ2hFLENBQUMsQ0FBQzthQUNMLENBQUMsQ0FBQTtRQUNOLENBQUM7UUFDRCxRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNuQixDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FDeEIsQ0FBQTtJQUNMLENBQUMsQ0FDSixDQUFBO0FBQ0wsQ0FBQyxDQUFDLENBQUEifQ==
@@ -0,0 +1,2 @@
1
+ import * as resources from "pareto-resources/interface/resources";
2
+ export declare const $$: resources.filesystem_unrestricted.queries.stat_possible_node;
@@ -0,0 +1,30 @@
1
+ import * as p_ from 'pareto-core/implementation/resource';
2
+ import p_change_context from 'pareto-core/implementation/refiner/specials/change_context';
3
+ //interface
4
+ import * as resources from "pareto-resources/interface/resources";
5
+ //dependencies
6
+ import { stat as fs_stat } from "fs";
7
+ import * as t_path_to_text from "pareto-resources/implementation/manual/transformers/unrestricted_path/text";
8
+ export const $$ = p_.query(($p, on_value, on_error) => {
9
+ fs_stat(t_path_to_text.Node_Path($p), (err, stats) => {
10
+ if (err) {
11
+ if (err.code === 'ENOENT') {
12
+ on_value(['does not exist', null]);
13
+ }
14
+ else {
15
+ on_error({
16
+ 'path': $p,
17
+ 'type': p_change_context(null, () => {
18
+ throw new Error(`unhandled fs.stat error code: ${err.code}`);
19
+ })
20
+ });
21
+ }
22
+ }
23
+ else {
24
+ on_value(stats.isFile()
25
+ ? ['file', null]
26
+ : ['directory', null]);
27
+ }
28
+ });
29
+ });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdF9wb3NzaWJsZV9ub2RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3F1ZXJpZXMvc3RhdF9wb3NzaWJsZV9ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLE1BQU0scUNBQXFDLENBQUE7QUFDekQsT0FBTyxnQkFBZ0IsTUFBTSw0REFBNEQsQ0FBQTtBQUV6RixXQUFXO0FBQ1gsT0FBTyxLQUFLLFNBQVMsTUFBTSxzQ0FBc0MsQ0FBQTtBQUVqRSxjQUFjO0FBQ2QsT0FBTyxFQUFFLElBQUksSUFBSSxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUE7QUFDcEMsT0FBTyxLQUFLLGNBQWMsTUFBTSw0RUFBNEUsQ0FBQTtBQUU1RyxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQWlFLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxFQUFFO0lBQ2hILE9BQU8sQ0FDSCxjQUFjLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUM1QixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNYLElBQUksR0FBRyxFQUFFLENBQUM7WUFDTixJQUFJLEdBQUcsQ0FBQyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hCLFFBQVEsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFFBQVEsQ0FBQztvQkFDTCxNQUFNLEVBQUUsRUFBRTtvQkFDVixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTt3QkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUE7b0JBQ2hFLENBQUMsQ0FBQztpQkFDTCxDQUFDLENBQUE7WUFDTixDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDSixRQUFRLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtnQkFDbkIsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUN4QixDQUFBO1FBQ0wsQ0FBQztJQUNMLENBQUMsQ0FDSixDQUFBO0FBQ0wsQ0FBQyxDQUFDLENBQUEifQ==
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "pareto-resource-filesystem-unrestricted",
3
+ "version": "0.1.2",
4
+ "author": "Corno",
5
+ "license": "Apache-2.0",
6
+ "description": "a library that implements the filesystem-unrestricted-api and thus provides filesystem functionality for pareto packages. use this resource if the sandboxed version is not sufficient for your needs. this resource is not sandboxed and thus has access to the entire filesystem.",
7
+ "keywords": [],
8
+ "homepage": "https://github.com/corno/pareto-resource-filesystem-unrestricted#readme",
9
+ "bugs": {
10
+ "url": "https://github.com/corno/pareto-resource-filesystem-unrestricted/issues"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "https://github.com/corno/pareto-resource-filesystem-unrestricted.git"
15
+ },
16
+ "type": "module",
17
+ "exports": {
18
+ "./*": {
19
+ "types": "./dist/*.d.ts",
20
+ "default": "./dist/*.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "dist",
25
+ "README.md",
26
+ "LICENSE",
27
+ "documentation"
28
+ ],
29
+ "engines": {
30
+ "node": ">=14.0.0"
31
+ },
32
+ "dependencies": {
33
+ "pareto-core": "^0.1.0",
34
+ "pareto-resources": "^0.2.0"
35
+ },
36
+ "devDependencies": {
37
+ "@types/node": "^26.1.0"
38
+ }
39
+ }