nesoi 3.0.0 → 3.0.3

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 (185) hide show
  1. package/README.md +10 -0
  2. package/lib/adapters/postgres/src/migrator/bucket.d.ts +20 -0
  3. package/lib/adapters/postgres/src/migrator/bucket.js +184 -0
  4. package/lib/adapters/postgres/src/migrator/csv.d.ts +7 -0
  5. package/lib/adapters/postgres/src/migrator/csv.js +72 -0
  6. package/lib/adapters/postgres/src/migrator/migration.d.ts +2 -18
  7. package/lib/adapters/postgres/src/migrator/migration.js +10 -158
  8. package/lib/adapters/postgres/src/migrator/migrator.js +8 -5
  9. package/lib/adapters/postgres/src/migrator/runner.d.ts +16 -6
  10. package/lib/adapters/postgres/src/migrator/runner.js +103 -34
  11. package/lib/adapters/postgres/src/postgres.bucket_adapter.d.ts +19 -22
  12. package/lib/adapters/postgres/src/postgres.bucket_adapter.js +116 -100
  13. package/lib/adapters/postgres/src/postgres.cli.d.ts +23 -3
  14. package/lib/adapters/postgres/src/postgres.cli.js +70 -10
  15. package/lib/adapters/postgres/src/postgres.config.d.ts +5 -0
  16. package/lib/adapters/postgres/src/postgres.config.js +2 -0
  17. package/lib/adapters/postgres/src/postgres.nql.d.ts +7 -3
  18. package/lib/adapters/postgres/src/postgres.nql.js +86 -32
  19. package/lib/adapters/postgres/src/postgres.provider.d.ts +18 -0
  20. package/lib/adapters/postgres/src/postgres.provider.js +77 -0
  21. package/lib/adapters/postgres/test/postgres.bucket_adapter.test.js +76 -39
  22. package/lib/compiler/apps/monolyth/monolyth_compiler.d.ts +3 -0
  23. package/lib/compiler/apps/monolyth/monolyth_compiler.js +24 -0
  24. package/lib/compiler/apps/monolyth/stages/2_build_typescript_stage.js +2 -1
  25. package/lib/compiler/apps/monolyth/stages/5_dump_cli_stage.js +1 -1
  26. package/lib/compiler/elements/bucket.element.js +26 -11
  27. package/lib/compiler/elements/constants.element.js +1 -1
  28. package/lib/compiler/elements/element.d.ts +2 -0
  29. package/lib/compiler/elements/message.element.js +4 -4
  30. package/lib/compiler/helpers/dump_helpers.js +5 -2
  31. package/lib/compiler/stages/7_dump_stage.js +2 -0
  32. package/lib/compiler/treeshake.js +9 -37
  33. package/lib/compiler/typescript/bridge/extract.js +12 -0
  34. package/lib/compiler/typescript/bridge/inject.js +3 -0
  35. package/lib/compiler/typescript/bridge/organize.js +3 -3
  36. package/lib/elements/blocks/block.builder.js +4 -2
  37. package/lib/elements/blocks/job/internal/resource_job.builder.d.ts +22 -20
  38. package/lib/elements/blocks/job/internal/resource_job.d.ts +2 -1
  39. package/lib/elements/blocks/job/internal/resource_job.js +17 -4
  40. package/lib/elements/blocks/job/job.js +3 -0
  41. package/lib/elements/blocks/job/job.types.d.ts +7 -0
  42. package/lib/elements/blocks/job/job.types.js +2 -0
  43. package/lib/elements/blocks/machine/machine.js +3 -2
  44. package/lib/elements/blocks/resource/resource.builder.js +2 -4
  45. package/lib/elements/blocks/resource/resource.d.ts +5 -3
  46. package/lib/elements/blocks/resource/resource.js +26 -17
  47. package/lib/elements/edge/controller/adapters/controller_adapter.d.ts +2 -1
  48. package/lib/elements/edge/controller/adapters/controller_adapter.js +11 -2
  49. package/lib/elements/edge/controller/controller.builder.d.ts +4 -5
  50. package/lib/elements/edge/controller/controller.builder.js +7 -7
  51. package/lib/elements/edge/controller/controller.d.ts +2 -1
  52. package/lib/elements/edge/controller/controller.js +8 -6
  53. package/lib/elements/entities/bucket/adapters/bucket_adapter.d.ts +61 -23
  54. package/lib/elements/entities/bucket/adapters/bucket_adapter.js +22 -13
  55. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.d.ts +21 -22
  56. package/lib/elements/entities/bucket/adapters/memory.bucket_adapter.js +68 -2
  57. package/lib/elements/entities/bucket/adapters/memory.nql.d.ts +10 -6
  58. package/lib/elements/entities/bucket/adapters/memory.nql.js +38 -3
  59. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.d.ts +0 -20
  60. package/lib/elements/entities/bucket/adapters/slow_memory.bucket_adapter.js +46 -30
  61. package/lib/elements/entities/bucket/bucket.builder.d.ts +8 -2
  62. package/lib/elements/entities/bucket/bucket.builder.js +13 -19
  63. package/lib/elements/entities/bucket/bucket.config.d.ts +5 -1
  64. package/lib/elements/entities/bucket/bucket.d.ts +180 -19
  65. package/lib/elements/entities/bucket/bucket.js +658 -48
  66. package/lib/elements/entities/bucket/bucket.schema.d.ts +7 -1
  67. package/lib/elements/entities/bucket/bucket.schema.js +2 -1
  68. package/lib/elements/entities/bucket/bucket.types.d.ts +2 -7
  69. package/lib/elements/entities/bucket/cache/bucket_cache.d.ts +6 -2
  70. package/lib/elements/entities/bucket/cache/bucket_cache.js +12 -12
  71. package/lib/elements/entities/bucket/graph/bucket_graph.d.ts +32 -5
  72. package/lib/elements/entities/bucket/graph/bucket_graph.js +80 -111
  73. package/lib/elements/entities/bucket/graph/bucket_graph.schema.d.ts +3 -6
  74. package/lib/elements/entities/bucket/graph/bucket_graph.schema.js +1 -4
  75. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.d.ts +3 -7
  76. package/lib/elements/entities/bucket/graph/bucket_graph_link.builder.js +6 -2
  77. package/lib/elements/entities/bucket/model/bucket_model.builder.js +1 -1
  78. package/lib/elements/entities/bucket/model/bucket_model.convert.js +3 -3
  79. package/lib/elements/entities/bucket/model/bucket_model.schema.d.ts +37 -8
  80. package/lib/elements/entities/bucket/model/bucket_model.schema.js +25 -4
  81. package/lib/elements/entities/bucket/model/bucket_model_field.builder.d.ts +33 -14
  82. package/lib/elements/entities/bucket/model/bucket_model_field.builder.js +56 -13
  83. package/lib/elements/entities/bucket/query/nql.schema.d.ts +1 -0
  84. package/lib/elements/entities/bucket/query/nql_compiler.js +13 -2
  85. package/lib/elements/entities/bucket/query/nql_engine.d.ts +11 -4
  86. package/lib/elements/entities/bucket/query/nql_engine.js +20 -11
  87. package/lib/elements/entities/bucket/view/bucket_view.js +63 -35
  88. package/lib/elements/entities/bucket/view/bucket_view.schema.d.ts +5 -2
  89. package/lib/elements/entities/bucket/view/bucket_view_field.builder.d.ts +6 -2
  90. package/lib/elements/entities/bucket/view/bucket_view_field.builder.js +21 -15
  91. package/lib/elements/entities/constants/constants.schema.d.ts +1 -1
  92. package/lib/elements/entities/drive/drive_adapter.d.ts +36 -0
  93. package/lib/elements/entities/drive/drive_adapter.js +10 -0
  94. package/lib/elements/entities/drive/local.drive_adapter.d.ts +8 -0
  95. package/lib/elements/entities/drive/local.drive_adapter.js +28 -0
  96. package/lib/elements/entities/message/message.schema.d.ts +1 -0
  97. package/lib/elements/entities/message/message.schema.js +33 -0
  98. package/lib/elements/entities/message/message_parser.d.ts +5 -1
  99. package/lib/elements/entities/message/message_parser.js +56 -35
  100. package/lib/elements/entities/message/template/message_template.schema.d.ts +10 -8
  101. package/lib/elements/entities/message/template/message_template_field.builder.d.ts +16 -6
  102. package/lib/elements/entities/message/template/message_template_field.builder.js +25 -0
  103. package/lib/elements/entities/message/template/message_template_parser.js +2 -1
  104. package/lib/engine/apps/app.config.d.ts +32 -11
  105. package/lib/engine/apps/app.config.js +12 -0
  106. package/lib/engine/apps/app.d.ts +2 -0
  107. package/lib/engine/apps/app.js +3 -0
  108. package/lib/engine/apps/inline.app.d.ts +5 -3
  109. package/lib/engine/apps/inline.app.js +27 -12
  110. package/lib/engine/apps/monolyth/monolyth.app.d.ts +4 -2
  111. package/lib/engine/apps/monolyth/monolyth.app.js +22 -10
  112. package/lib/engine/auth/authn.d.ts +5 -1
  113. package/lib/engine/auth/zero.authn_provider.d.ts +4 -2
  114. package/lib/engine/auth/zero.authn_provider.js +2 -2
  115. package/lib/engine/cli/cli.d.ts +3 -1
  116. package/lib/engine/cli/cli.js +22 -3
  117. package/lib/engine/cli/cli_adapter.d.ts +2 -1
  118. package/lib/engine/cli/cli_adapter.js +2 -1
  119. package/lib/engine/cli/cli_input.d.ts +19 -0
  120. package/lib/engine/cli/cli_input.js +207 -0
  121. package/lib/engine/cli/ui.d.ts +1 -1
  122. package/lib/engine/cli/ui.js +2 -2
  123. package/lib/engine/daemon.d.ts +3 -2
  124. package/lib/engine/daemon.js +14 -2
  125. package/lib/engine/data/date.js +2 -2
  126. package/lib/engine/data/datetime.d.ts +40 -4
  127. package/lib/engine/data/datetime.js +70 -11
  128. package/lib/engine/data/decimal.d.ts +1 -1
  129. package/lib/engine/data/decimal.js +3 -3
  130. package/lib/engine/data/error.d.ts +21 -4
  131. package/lib/engine/data/error.js +23 -7
  132. package/lib/engine/data/file.d.ts +23 -0
  133. package/lib/engine/data/file.js +53 -0
  134. package/lib/engine/data/json.d.ts +6 -0
  135. package/lib/engine/data/json.js +26 -0
  136. package/lib/engine/data/obj.d.ts +1 -1
  137. package/lib/engine/data/trash.d.ts +14 -0
  138. package/lib/engine/data/trash.js +2 -0
  139. package/lib/engine/data/tree.d.ts +7 -12
  140. package/lib/engine/data/tree.js +101 -49
  141. package/lib/engine/module.d.ts +2 -1
  142. package/lib/engine/module.js +2 -5
  143. package/lib/engine/space.d.ts +1 -0
  144. package/lib/engine/space.js +6 -0
  145. package/lib/engine/transaction/nodes/bucket.trx_node.d.ts +156 -24
  146. package/lib/engine/transaction/nodes/bucket.trx_node.js +297 -467
  147. package/lib/engine/transaction/nodes/bucket_query.trx_node.d.ts +4 -2
  148. package/lib/engine/transaction/nodes/bucket_query.trx_node.js +27 -15
  149. package/lib/engine/transaction/nodes/job.trx_node.d.ts +2 -1
  150. package/lib/engine/transaction/nodes/job.trx_node.js +6 -0
  151. package/lib/engine/transaction/trx.d.ts +5 -2
  152. package/lib/engine/transaction/trx.js +2 -2
  153. package/lib/engine/transaction/trx_engine.config.d.ts +1 -3
  154. package/lib/engine/transaction/trx_engine.d.ts +2 -2
  155. package/lib/engine/transaction/trx_engine.js +14 -11
  156. package/lib/engine/transaction/trx_node.d.ts +14 -4
  157. package/lib/engine/transaction/trx_node.js +50 -8
  158. package/lib/engine/tree.d.ts +1 -1
  159. package/lib/engine/util/crypto.d.ts +50 -0
  160. package/lib/engine/util/crypto.js +89 -0
  161. package/lib/engine/util/deep.d.ts +5 -0
  162. package/lib/engine/util/deep.js +46 -0
  163. package/lib/engine/util/dotenv.d.ts +2 -8
  164. package/lib/engine/util/dotenv.js +14 -36
  165. package/lib/engine/util/hash.d.ts +3 -0
  166. package/lib/engine/util/hash.js +23 -0
  167. package/lib/engine/util/log.js +1 -1
  168. package/lib/engine/util/mime.d.ts +10 -0
  169. package/lib/engine/util/mime.js +389 -0
  170. package/lib/engine/util/parse.d.ts +6 -5
  171. package/lib/engine/util/parse.js +16 -15
  172. package/lib/engine/util/path.d.ts +3 -0
  173. package/lib/engine/util/path.js +92 -0
  174. package/lib/engine/util/rules.d.ts +4 -0
  175. package/lib/engine/util/rules.js +12 -0
  176. package/package.json +1 -1
  177. package/tools/compile.js +2 -2
  178. package/tools/dotenv.d.ts +1 -0
  179. package/tools/dotenv.js +4 -0
  180. package/tools/joaquin/job.d.ts +5 -5
  181. package/tools/joaquin/mock.d.ts +23 -2
  182. package/tools/joaquin/mock.js +127 -21
  183. package/tsconfig.build.tsbuildinfo +1 -1
  184. package/lib/adapters/postgres/test/postgres.bucket_query.test.d.ts +0 -0
  185. package/lib/adapters/postgres/test/postgres.bucket_query.test.js +0 -136
@@ -33,15 +33,24 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.DotEnvValidator = exports.DotEnv = void 0;
36
+ exports.DotEnv = void 0;
37
+ const path = __importStar(require("path"));
37
38
  const fs = __importStar(require("fs"));
38
39
  class DotEnv {
39
40
  static load() {
41
+ if (!fs.existsSync(this.path))
42
+ return;
43
+ const file = this.parse();
44
+ for (const key in file) {
45
+ process.env[key] = file[key];
46
+ }
47
+ }
48
+ static parse() {
40
49
  const file = fs.readFileSync(this.path, 'utf-8');
41
50
  return file.split('\n').reduce((a, line) => {
42
51
  const p = line.split('=');
43
52
  if (p.length > 1)
44
- a[p[0]] = line.split('=')[1];
53
+ a[p[0]] = line.split('=')[1].trim();
45
54
  return a;
46
55
  }, {});
47
56
  }
@@ -50,45 +59,14 @@ class DotEnv {
50
59
  fs.writeFileSync(this.path, file);
51
60
  }
52
61
  static get(key) {
53
- const dotenv = this.load();
62
+ const dotenv = this.parse();
54
63
  return dotenv[key];
55
64
  }
56
65
  static set(key, value) {
57
- const dotenv = this.load();
66
+ const dotenv = this.parse();
58
67
  dotenv[key] = value;
59
68
  this.save(dotenv);
60
69
  }
61
70
  }
62
71
  exports.DotEnv = DotEnv;
63
- DotEnv.path = '.env';
64
- class DotEnvValidator {
65
- static load() {
66
- const file = fs.readFileSync(this.path, 'utf-8');
67
- const regex = new RegExp(/(\S*?): (.*)\)[, $\n]/gm);
68
- const validator = {};
69
- let entry = regex.exec(file);
70
- while (entry) {
71
- validator[entry[1]] = entry[2] + ')';
72
- entry = regex.exec(file);
73
- }
74
- return validator;
75
- }
76
- static save(validator) {
77
- let file = 'import Env from \'@ioc:Adonis/Core/Env\'\n\n';
78
- file += 'export default Env.rules({\n';
79
- file += Object.keys(validator).map(p => '\t' + p + ': ' + validator[p]).join(',\n');
80
- file += '\n})';
81
- fs.writeFileSync(this.path, file);
82
- }
83
- static set(key, type, args) {
84
- const validator = this.load();
85
- if (args)
86
- args = JSON.stringify(args) + ' as const';
87
- else
88
- args = '';
89
- validator[key] = `Env.schema.${type}(${args})`;
90
- this.save(validator);
91
- }
92
- }
93
- exports.DotEnvValidator = DotEnvValidator;
94
- DotEnvValidator.path = 'env.ts';
72
+ DotEnv.path = path.join(process.cwd(), '.env');
@@ -0,0 +1,3 @@
1
+ export declare class Hash {
2
+ static file(filepath: string, algorithm: 'sha256' | 'sha1' | 'md5'): Promise<string>;
3
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Hash = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const crypto_1 = __importDefault(require("crypto"));
9
+ class Hash {
10
+ static file(filepath, algorithm) {
11
+ return new Promise(resolve => {
12
+ const fd = fs_1.default.createReadStream(filepath);
13
+ const hash = crypto_1.default.createHash(algorithm);
14
+ hash.setEncoding('hex');
15
+ fd.on('end', function () {
16
+ hash.end();
17
+ resolve(hash.read());
18
+ });
19
+ fd.pipe(hash);
20
+ });
21
+ }
22
+ }
23
+ exports.Hash = Hash;
@@ -63,7 +63,7 @@ class Log {
63
63
  this.push('trace', scope, scope_id, message, obj);
64
64
  }
65
65
  static push(level, scope, scope_id, message, obj) {
66
- const time = (0, string_1.colored)(`${datetime_1.NesoiDatetime.shortNow()}`, 'darkgray');
66
+ const time = (0, string_1.colored)(`${datetime_1.NesoiDatetime.shortIsoNow()}`, 'darkgray');
67
67
  const head = scopeTag(scope, scope_id);
68
68
  if (level === 'error') {
69
69
  console.log(`${time} ${this.l[level]} ${head}\t${(0, string_1.colored)(message, 'lightred')}`);
@@ -0,0 +1,10 @@
1
+ export declare class Mime {
2
+ static ofFilepath(filepath: string): {
3
+ extname: string;
4
+ mimetype: string;
5
+ };
6
+ }
7
+ declare const types: {
8
+ [key: string]: string[];
9
+ };
10
+ export default types;
@@ -0,0 +1,389 @@
1
+ "use strict";
2
+ // Taken from [mime](https://github.com/broofa/mime)
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Mime = void 0;
8
+ const path_1 = __importDefault(require("path"));
9
+ class Mime {
10
+ static ofFilepath(filepath) {
11
+ let extname = path_1.default.extname(filepath);
12
+ if (!extname.length)
13
+ return { extname, mimetype: '' };
14
+ extname = extname.slice(1);
15
+ for (const type in types) {
16
+ if (types[type].includes(extname)) {
17
+ return { extname, mimetype: type };
18
+ }
19
+ }
20
+ return { extname, mimetype: '' };
21
+ }
22
+ }
23
+ exports.Mime = Mime;
24
+ const types = {
25
+ 'application/andrew-inset': ['ez'],
26
+ 'application/appinstaller': ['appinstaller'],
27
+ 'application/applixware': ['aw'],
28
+ 'application/appx': ['appx'],
29
+ 'application/appxbundle': ['appxbundle'],
30
+ 'application/atom+xml': ['atom'],
31
+ 'application/atomcat+xml': ['atomcat'],
32
+ 'application/atomdeleted+xml': ['atomdeleted'],
33
+ 'application/atomsvc+xml': ['atomsvc'],
34
+ 'application/atsc-dwd+xml': ['dwd'],
35
+ 'application/atsc-held+xml': ['held'],
36
+ 'application/atsc-rsat+xml': ['rsat'],
37
+ 'application/automationml-aml+xml': ['aml'],
38
+ 'application/automationml-amlx+zip': ['amlx'],
39
+ 'application/bdoc': ['bdoc'],
40
+ 'application/calendar+xml': ['xcs'],
41
+ 'application/ccxml+xml': ['ccxml'],
42
+ 'application/cdfx+xml': ['cdfx'],
43
+ 'application/cdmi-capability': ['cdmia'],
44
+ 'application/cdmi-container': ['cdmic'],
45
+ 'application/cdmi-domain': ['cdmid'],
46
+ 'application/cdmi-object': ['cdmio'],
47
+ 'application/cdmi-queue': ['cdmiq'],
48
+ 'application/cpl+xml': ['cpl'],
49
+ 'application/cu-seeme': ['cu'],
50
+ 'application/cwl': ['cwl'],
51
+ 'application/dash+xml': ['mpd'],
52
+ 'application/dash-patch+xml': ['mpp'],
53
+ 'application/davmount+xml': ['davmount'],
54
+ 'application/dicom': ['dcm'],
55
+ 'application/docbook+xml': ['dbk'],
56
+ 'application/dssc+der': ['dssc'],
57
+ 'application/dssc+xml': ['xdssc'],
58
+ 'application/ecmascript': ['ecma'],
59
+ 'application/emma+xml': ['emma'],
60
+ 'application/emotionml+xml': ['emotionml'],
61
+ 'application/epub+zip': ['epub'],
62
+ 'application/exi': ['exi'],
63
+ 'application/express': ['exp'],
64
+ 'application/fdf': ['fdf'],
65
+ 'application/fdt+xml': ['fdt'],
66
+ 'application/font-tdpfr': ['pfr'],
67
+ 'application/geo+json': ['geojson'],
68
+ 'application/gml+xml': ['gml'],
69
+ 'application/gpx+xml': ['gpx'],
70
+ 'application/gxf': ['gxf'],
71
+ 'application/gzip': ['gz'],
72
+ 'application/hjson': ['hjson'],
73
+ 'application/hyperstudio': ['stk'],
74
+ 'application/inkml+xml': ['ink', 'inkml'],
75
+ 'application/ipfix': ['ipfix'],
76
+ 'application/its+xml': ['its'],
77
+ 'application/java-archive': ['jar', 'war', 'ear'],
78
+ 'application/java-serialized-object': ['ser'],
79
+ 'application/java-vm': ['class'],
80
+ 'application/javascript': ['*js'],
81
+ 'application/json': ['json', 'map'],
82
+ 'application/json5': ['json5'],
83
+ 'application/jsonml+json': ['jsonml'],
84
+ 'application/ld+json': ['jsonld'],
85
+ 'application/lgr+xml': ['lgr'],
86
+ 'application/lost+xml': ['lostxml'],
87
+ 'application/mac-binhex40': ['hqx'],
88
+ 'application/mac-compactpro': ['cpt'],
89
+ 'application/mads+xml': ['mads'],
90
+ 'application/manifest+json': ['webmanifest'],
91
+ 'application/marc': ['mrc'],
92
+ 'application/marcxml+xml': ['mrcx'],
93
+ 'application/mathematica': ['ma', 'nb', 'mb'],
94
+ 'application/mathml+xml': ['mathml'],
95
+ 'application/mbox': ['mbox'],
96
+ 'application/media-policy-dataset+xml': ['mpf'],
97
+ 'application/mediaservercontrol+xml': ['mscml'],
98
+ 'application/metalink+xml': ['metalink'],
99
+ 'application/metalink4+xml': ['meta4'],
100
+ 'application/mets+xml': ['mets'],
101
+ 'application/mmt-aei+xml': ['maei'],
102
+ 'application/mmt-usd+xml': ['musd'],
103
+ 'application/mods+xml': ['mods'],
104
+ 'application/mp21': ['m21', 'mp21'],
105
+ 'application/mp4': ['*mp4', '*mpg4', 'mp4s', 'm4p'],
106
+ 'application/msix': ['msix'],
107
+ 'application/msixbundle': ['msixbundle'],
108
+ 'application/msword': ['doc', 'dot'],
109
+ 'application/mxf': ['mxf'],
110
+ 'application/n-quads': ['nq'],
111
+ 'application/n-triples': ['nt'],
112
+ 'application/node': ['cjs'],
113
+ 'application/octet-stream': [
114
+ 'bin',
115
+ 'dms',
116
+ 'lrf',
117
+ 'mar',
118
+ 'so',
119
+ 'dist',
120
+ 'distz',
121
+ 'pkg',
122
+ 'bpk',
123
+ 'dump',
124
+ 'elc',
125
+ 'deploy',
126
+ 'exe',
127
+ 'dll',
128
+ 'deb',
129
+ 'dmg',
130
+ 'iso',
131
+ 'img',
132
+ 'msi',
133
+ 'msp',
134
+ 'msm',
135
+ 'buffer',
136
+ ],
137
+ 'application/oda': ['oda'],
138
+ 'application/oebps-package+xml': ['opf'],
139
+ 'application/ogg': ['ogx'],
140
+ 'application/omdoc+xml': ['omdoc'],
141
+ 'application/onenote': [
142
+ 'onetoc',
143
+ 'onetoc2',
144
+ 'onetmp',
145
+ 'onepkg',
146
+ 'one',
147
+ 'onea',
148
+ ],
149
+ 'application/oxps': ['oxps'],
150
+ 'application/p2p-overlay+xml': ['relo'],
151
+ 'application/patch-ops-error+xml': ['xer'],
152
+ 'application/pdf': ['pdf'],
153
+ 'application/pgp-encrypted': ['pgp'],
154
+ 'application/pgp-keys': ['asc'],
155
+ 'application/pgp-signature': ['sig', '*asc'],
156
+ 'application/pics-rules': ['prf'],
157
+ 'application/pkcs10': ['p10'],
158
+ 'application/pkcs7-mime': ['p7m', 'p7c'],
159
+ 'application/pkcs7-signature': ['p7s'],
160
+ 'application/pkcs8': ['p8'],
161
+ 'application/pkix-attr-cert': ['ac'],
162
+ 'application/pkix-cert': ['cer'],
163
+ 'application/pkix-crl': ['crl'],
164
+ 'application/pkix-pkipath': ['pkipath'],
165
+ 'application/pkixcmp': ['pki'],
166
+ 'application/pls+xml': ['pls'],
167
+ 'application/postscript': ['ai', 'eps', 'ps'],
168
+ 'application/provenance+xml': ['provx'],
169
+ 'application/pskc+xml': ['pskcxml'],
170
+ 'application/raml+yaml': ['raml'],
171
+ 'application/rdf+xml': ['rdf', 'owl'],
172
+ 'application/reginfo+xml': ['rif'],
173
+ 'application/relax-ng-compact-syntax': ['rnc'],
174
+ 'application/resource-lists+xml': ['rl'],
175
+ 'application/resource-lists-diff+xml': ['rld'],
176
+ 'application/rls-services+xml': ['rs'],
177
+ 'application/route-apd+xml': ['rapd'],
178
+ 'application/route-s-tsid+xml': ['sls'],
179
+ 'application/route-usd+xml': ['rusd'],
180
+ 'application/rpki-ghostbusters': ['gbr'],
181
+ 'application/rpki-manifest': ['mft'],
182
+ 'application/rpki-roa': ['roa'],
183
+ 'application/rsd+xml': ['rsd'],
184
+ 'application/rss+xml': ['rss'],
185
+ 'application/rtf': ['rtf'],
186
+ 'application/sbml+xml': ['sbml'],
187
+ 'application/scvp-cv-request': ['scq'],
188
+ 'application/scvp-cv-response': ['scs'],
189
+ 'application/scvp-vp-request': ['spq'],
190
+ 'application/scvp-vp-response': ['spp'],
191
+ 'application/sdp': ['sdp'],
192
+ 'application/senml+xml': ['senmlx'],
193
+ 'application/sensml+xml': ['sensmlx'],
194
+ 'application/set-payment-initiation': ['setpay'],
195
+ 'application/set-registration-initiation': ['setreg'],
196
+ 'application/shf+xml': ['shf'],
197
+ 'application/sieve': ['siv', 'sieve'],
198
+ 'application/smil+xml': ['smi', 'smil'],
199
+ 'application/sparql-query': ['rq'],
200
+ 'application/sparql-results+xml': ['srx'],
201
+ 'application/sql': ['sql'],
202
+ 'application/srgs': ['gram'],
203
+ 'application/srgs+xml': ['grxml'],
204
+ 'application/sru+xml': ['sru'],
205
+ 'application/ssdl+xml': ['ssdl'],
206
+ 'application/ssml+xml': ['ssml'],
207
+ 'application/swid+xml': ['swidtag'],
208
+ 'application/tei+xml': ['tei', 'teicorpus'],
209
+ 'application/thraud+xml': ['tfi'],
210
+ 'application/timestamped-data': ['tsd'],
211
+ 'application/toml': ['toml'],
212
+ 'application/trig': ['trig'],
213
+ 'application/ttml+xml': ['ttml'],
214
+ 'application/ubjson': ['ubj'],
215
+ 'application/urc-ressheet+xml': ['rsheet'],
216
+ 'application/urc-targetdesc+xml': ['td'],
217
+ 'application/voicexml+xml': ['vxml'],
218
+ 'application/wasm': ['wasm'],
219
+ 'application/watcherinfo+xml': ['wif'],
220
+ 'application/widget': ['wgt'],
221
+ 'application/winhlp': ['hlp'],
222
+ 'application/wsdl+xml': ['wsdl'],
223
+ 'application/wspolicy+xml': ['wspolicy'],
224
+ 'application/xaml+xml': ['xaml'],
225
+ 'application/xcap-att+xml': ['xav'],
226
+ 'application/xcap-caps+xml': ['xca'],
227
+ 'application/xcap-diff+xml': ['xdf'],
228
+ 'application/xcap-el+xml': ['xel'],
229
+ 'application/xcap-ns+xml': ['xns'],
230
+ 'application/xenc+xml': ['xenc'],
231
+ 'application/xfdf': ['xfdf'],
232
+ 'application/xhtml+xml': ['xhtml', 'xht'],
233
+ 'application/xliff+xml': ['xlf'],
234
+ 'application/xml': ['xml', 'xsl', 'xsd', 'rng'],
235
+ 'application/xml-dtd': ['dtd'],
236
+ 'application/xop+xml': ['xop'],
237
+ 'application/xproc+xml': ['xpl'],
238
+ 'application/xslt+xml': ['*xsl', 'xslt'],
239
+ 'application/xspf+xml': ['xspf'],
240
+ 'application/xv+xml': ['mxml', 'xhvml', 'xvml', 'xvm'],
241
+ 'application/yang': ['yang'],
242
+ 'application/yin+xml': ['yin'],
243
+ 'application/zip': ['zip'],
244
+ 'application/zip+dotlottie': ['lottie'],
245
+ 'audio/3gpp': ['*3gpp'],
246
+ 'audio/aac': ['adts', 'aac'],
247
+ 'audio/adpcm': ['adp'],
248
+ 'audio/amr': ['amr'],
249
+ 'audio/basic': ['au', 'snd'],
250
+ 'audio/midi': ['mid', 'midi', 'kar', 'rmi'],
251
+ 'audio/mobile-xmf': ['mxmf'],
252
+ 'audio/mp3': ['*mp3'],
253
+ 'audio/mp4': ['m4a', 'mp4a', 'm4b'],
254
+ 'audio/mpeg': ['mpga', 'mp2', 'mp2a', 'mp3', 'm2a', 'm3a'],
255
+ 'audio/ogg': ['oga', 'ogg', 'spx', 'opus'],
256
+ 'audio/s3m': ['s3m'],
257
+ 'audio/silk': ['sil'],
258
+ 'audio/wav': ['wav'],
259
+ 'audio/wave': ['*wav'],
260
+ 'audio/webm': ['weba'],
261
+ 'audio/xm': ['xm'],
262
+ 'font/collection': ['ttc'],
263
+ 'font/otf': ['otf'],
264
+ 'font/ttf': ['ttf'],
265
+ 'font/woff': ['woff'],
266
+ 'font/woff2': ['woff2'],
267
+ 'image/aces': ['exr'],
268
+ 'image/apng': ['apng'],
269
+ 'image/avci': ['avci'],
270
+ 'image/avcs': ['avcs'],
271
+ 'image/avif': ['avif'],
272
+ 'image/bmp': ['bmp', 'dib'],
273
+ 'image/cgm': ['cgm'],
274
+ 'image/dicom-rle': ['drle'],
275
+ 'image/dpx': ['dpx'],
276
+ 'image/emf': ['emf'],
277
+ 'image/fits': ['fits'],
278
+ 'image/g3fax': ['g3'],
279
+ 'image/gif': ['gif'],
280
+ 'image/heic': ['heic'],
281
+ 'image/heic-sequence': ['heics'],
282
+ 'image/heif': ['heif'],
283
+ 'image/heif-sequence': ['heifs'],
284
+ 'image/hej2k': ['hej2'],
285
+ 'image/ief': ['ief'],
286
+ 'image/jaii': ['jaii'],
287
+ 'image/jais': ['jais'],
288
+ 'image/jls': ['jls'],
289
+ 'image/jp2': ['jp2', 'jpg2'],
290
+ 'image/jpeg': ['jpg', 'jpeg', 'jpe'],
291
+ 'image/jph': ['jph'],
292
+ 'image/jphc': ['jhc'],
293
+ 'image/jpm': ['jpm', 'jpgm'],
294
+ 'image/jpx': ['jpx', 'jpf'],
295
+ 'image/jxl': ['jxl'],
296
+ 'image/jxr': ['jxr'],
297
+ 'image/jxra': ['jxra'],
298
+ 'image/jxrs': ['jxrs'],
299
+ 'image/jxs': ['jxs'],
300
+ 'image/jxsc': ['jxsc'],
301
+ 'image/jxsi': ['jxsi'],
302
+ 'image/jxss': ['jxss'],
303
+ 'image/ktx': ['ktx'],
304
+ 'image/ktx2': ['ktx2'],
305
+ 'image/pjpeg': ['jfif'],
306
+ 'image/png': ['png'],
307
+ 'image/sgi': ['sgi'],
308
+ 'image/svg+xml': ['svg', 'svgz'],
309
+ 'image/t38': ['t38'],
310
+ 'image/tiff': ['tif', 'tiff'],
311
+ 'image/tiff-fx': ['tfx'],
312
+ 'image/webp': ['webp'],
313
+ 'image/wmf': ['wmf'],
314
+ 'message/disposition-notification': ['disposition-notification'],
315
+ 'message/global': ['u8msg'],
316
+ 'message/global-delivery-status': ['u8dsn'],
317
+ 'message/global-disposition-notification': ['u8mdn'],
318
+ 'message/global-headers': ['u8hdr'],
319
+ 'message/rfc822': ['eml', 'mime', 'mht', 'mhtml'],
320
+ 'model/3mf': ['3mf'],
321
+ 'model/gltf+json': ['gltf'],
322
+ 'model/gltf-binary': ['glb'],
323
+ 'model/iges': ['igs', 'iges'],
324
+ 'model/jt': ['jt'],
325
+ 'model/mesh': ['msh', 'mesh', 'silo'],
326
+ 'model/mtl': ['mtl'],
327
+ 'model/obj': ['obj'],
328
+ 'model/prc': ['prc'],
329
+ 'model/step': ['step', 'stp', 'stpnc', 'p21', '210'],
330
+ 'model/step+xml': ['stpx'],
331
+ 'model/step+zip': ['stpz'],
332
+ 'model/step-xml+zip': ['stpxz'],
333
+ 'model/stl': ['stl'],
334
+ 'model/u3d': ['u3d'],
335
+ 'model/vrml': ['wrl', 'vrml'],
336
+ 'model/x3d+binary': ['*x3db', 'x3dbz'],
337
+ 'model/x3d+fastinfoset': ['x3db'],
338
+ 'model/x3d+vrml': ['*x3dv', 'x3dvz'],
339
+ 'model/x3d+xml': ['x3d', 'x3dz'],
340
+ 'model/x3d-vrml': ['x3dv'],
341
+ 'text/cache-manifest': ['appcache', 'manifest'],
342
+ 'text/calendar': ['ics', 'ifb'],
343
+ 'text/coffeescript': ['coffee', 'litcoffee'],
344
+ 'text/css': ['css'],
345
+ 'text/csv': ['csv'],
346
+ 'text/html': ['html', 'htm', 'shtml'],
347
+ 'text/jade': ['jade'],
348
+ 'text/javascript': ['js', 'mjs'],
349
+ 'text/jsx': ['jsx'],
350
+ 'text/less': ['less'],
351
+ 'text/markdown': ['md', 'markdown'],
352
+ 'text/mathml': ['mml'],
353
+ 'text/mdx': ['mdx'],
354
+ 'text/n3': ['n3'],
355
+ 'text/plain': ['txt', 'text', 'conf', 'def', 'list', 'log', 'in', 'ini'],
356
+ 'text/richtext': ['rtx'],
357
+ 'text/rtf': ['*rtf'],
358
+ 'text/sgml': ['sgml', 'sgm'],
359
+ 'text/shex': ['shex'],
360
+ 'text/slim': ['slim', 'slm'],
361
+ 'text/spdx': ['spdx'],
362
+ 'text/stylus': ['stylus', 'styl'],
363
+ 'text/tab-separated-values': ['tsv'],
364
+ 'text/troff': ['t', 'tr', 'roff', 'man', 'me', 'ms'],
365
+ 'text/turtle': ['ttl'],
366
+ 'text/uri-list': ['uri', 'uris', 'urls'],
367
+ 'text/vcard': ['vcard'],
368
+ 'text/vtt': ['vtt'],
369
+ 'text/wgsl': ['wgsl'],
370
+ 'text/xml': ['*xml'],
371
+ 'text/yaml': ['yaml', 'yml'],
372
+ 'video/3gpp': ['3gp', '3gpp'],
373
+ 'video/3gpp2': ['3g2'],
374
+ 'video/h261': ['h261'],
375
+ 'video/h263': ['h263'],
376
+ 'video/h264': ['h264'],
377
+ 'video/iso.segment': ['m4s'],
378
+ 'video/jpeg': ['jpgv'],
379
+ 'video/jpm': ['*jpm', '*jpgm'],
380
+ 'video/mj2': ['mj2', 'mjp2'],
381
+ 'video/mp2t': ['ts', 'm2t', 'm2ts', 'mts'],
382
+ 'video/mp4': ['mp4', 'mp4v', 'mpg4'],
383
+ 'video/mpeg': ['mpeg', 'mpg', 'mpe', 'm1v', 'm2v'],
384
+ 'video/ogg': ['ogv'],
385
+ 'video/quicktime': ['qt', 'mov'],
386
+ 'video/webm': ['webm'],
387
+ };
388
+ Object.freeze(types);
389
+ exports.default = types;
@@ -2,8 +2,9 @@ import { NesoiDate } from '../data/date';
2
2
  import { $MessageTemplateFields } from '../../elements/entities/message/template/message_template.schema';
3
3
  import { $Module, BucketName, ViewName } from "../../schema";
4
4
  import { AnyTrxNode } from '../transaction/trx_node';
5
- import { Decimal } from '../data/decimal';
5
+ import { NesoiDecimal } from '../data/decimal';
6
6
  import { NesoiDatetime } from '../data/datetime';
7
+ import { NesoiFile } from '../data/file';
7
8
  export declare function parseBoolean(field: {
8
9
  name: string;
9
10
  alias: string;
@@ -19,7 +20,7 @@ export declare function parseDatetime(field: {
19
20
  export declare function parseDecimal(field: {
20
21
  name: string;
21
22
  alias: string;
22
- }, value: any, array: boolean): Promise<Decimal | Decimal[]>;
23
+ }, value: any, array: boolean): Promise<NesoiDecimal | NesoiDecimal[]>;
23
24
  export declare function parseEnum(raw: Record<string, any>, field: {
24
25
  name: string;
25
26
  alias: string;
@@ -28,9 +29,9 @@ export declare function parseFile(field: {
28
29
  name: string;
29
30
  alias: string;
30
31
  }, value: any, array: boolean, options?: {
31
- maxSize?: number;
32
+ maxsize?: number;
32
33
  extnames?: string[];
33
- }): Promise<any>;
34
+ }): Promise<NesoiFile | NesoiFile[]>;
34
35
  export declare function parseFloat_(field: {
35
36
  name: string;
36
37
  alias: string;
@@ -38,7 +39,7 @@ export declare function parseFloat_(field: {
38
39
  export declare function parseId<M extends $Module, Name extends BucketName<M>, View extends ViewName<M['buckets'][Name]> | undefined>(field: {
39
40
  name: string;
40
41
  alias: string;
41
- }, value: any, array: boolean, trx: AnyTrxNode, bucket: Name, view?: View): Promise<unknown>;
42
+ }, value: any, array: boolean, trx: AnyTrxNode, bucket: Name, type?: 'int' | 'string', view?: View): Promise<unknown>;
42
43
  export declare function parseInt_(field: {
43
44
  name: string;
44
45
  alias: string;
@@ -18,6 +18,7 @@ const error_1 = require("../data/error");
18
18
  const tree_1 = require("../data/tree");
19
19
  const decimal_1 = require("../data/decimal");
20
20
  const datetime_1 = require("../data/datetime");
21
+ const file_1 = require("../data/file");
21
22
  // TODO: check the performance of this wild thing below
22
23
  async function parse(type, field, value, array, fn) {
23
24
  if (array) {
@@ -66,7 +67,7 @@ function parseDatetime(field, value, array) {
66
67
  function parseDecimal(field, value, array) {
67
68
  return parse('decimal', field, value, array, (v) => {
68
69
  if (typeof v === 'string') {
69
- return new decimal_1.Decimal(v);
70
+ return new decimal_1.NesoiDecimal(v);
70
71
  }
71
72
  throw error_1.NesoiError.Message.InvalidFieldType({ field: field.alias, value: v, type: 'float' });
72
73
  });
@@ -121,12 +122,12 @@ function parseEnum(raw, field, value, array, options, trx) {
121
122
  }
122
123
  function parseFile(field, value, array, options) {
123
124
  return parse('file', field, value, array, (v) => {
124
- if (!v.size || !v.extname || !v.data || !v.data.clientName) {
125
+ if (!(v instanceof file_1.NesoiFile)) {
125
126
  throw error_1.NesoiError.Message.InvalidFieldType({ field: field.alias, value: v, type: 'file' });
126
127
  }
127
- if (options?.maxSize) {
128
- if (v.size > options?.maxSize) {
129
- throw error_1.NesoiError.Message.FileTooBig(field, options?.maxSize);
128
+ if (options?.maxsize) {
129
+ if (v.size > options?.maxsize) {
130
+ throw error_1.NesoiError.Message.FileTooBig(field, options?.maxsize);
130
131
  }
131
132
  }
132
133
  if (options?.extnames) {
@@ -153,12 +154,14 @@ function parseFloat_(field, value, array) {
153
154
  throw error_1.NesoiError.Message.InvalidFieldType({ field: field.alias, value: v, type: 'float' });
154
155
  });
155
156
  }
156
- async function parseId(field, value, array, trx, bucket, view) {
157
+ async function parseId(field, value, array, trx, bucket, type, view) {
157
158
  return parse('id', field, value, array, (async (v) => {
158
- // TODO: validate by field type
159
- const val = v;
160
- if (typeof v !== 'string' && typeof v !== 'number') {
161
- throw error_1.NesoiError.Message.InvalidFieldType({ field: field.alias, value: v, type: 'id' });
159
+ let val;
160
+ if (type === 'string') {
161
+ val = await parseString(field, value, array);
162
+ }
163
+ else {
164
+ val = await parseInt_(field, value, array);
162
165
  }
163
166
  return {
164
167
  id: val,
@@ -205,11 +208,9 @@ async function parseDict(field, value, array, trx, parseFields) {
205
208
  return parse('dict', field, value, array, (async (v) => {
206
209
  if (typeof v === 'object') {
207
210
  const parsed = {};
208
- if (field.children) {
209
- for (const k in v) {
210
- const pv = await parseFields(trx, field.children, { __dict: v[k] });
211
- parsed[k] = pv['__dict'];
212
- }
211
+ for (const k in v) {
212
+ const pv = await parseFields(trx, field.children, { __dict: v[k] });
213
+ parsed[k] = pv['__dict'];
213
214
  }
214
215
  return parsed;
215
216
  }
@@ -0,0 +1,3 @@
1
+ export declare class Path {
2
+ static expandWildcard(str: string): string[];
3
+ }