@warlock.js/core 4.0.131 → 4.0.133

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 (86) hide show
  1. package/esm/cli/commands/create-database.command.d.ts +2 -0
  2. package/esm/cli/commands/create-database.command.d.ts.map +1 -0
  3. package/esm/cli/commands/create-database.command.js +18 -0
  4. package/esm/cli/commands/create-database.command.js.map +1 -0
  5. package/esm/cli/commands/generate/generate.command.d.ts +10 -0
  6. package/esm/cli/commands/generate/generate.command.d.ts.map +1 -0
  7. package/esm/cli/commands/generate/generate.command.js +167 -0
  8. package/esm/cli/commands/generate/generate.command.js.map +1 -0
  9. package/esm/cli/commands/generate/generators/controller.generator.d.ts +3 -0
  10. package/esm/cli/commands/generate/generators/controller.generator.d.ts.map +1 -0
  11. package/esm/cli/commands/generate/generators/controller.generator.js +51 -0
  12. package/esm/cli/commands/generate/generators/controller.generator.js.map +1 -0
  13. package/esm/cli/commands/generate/generators/migration.generator.d.ts +13 -0
  14. package/esm/cli/commands/generate/generators/migration.generator.d.ts.map +1 -0
  15. package/esm/cli/commands/generate/generators/migration.generator.js +42 -0
  16. package/esm/cli/commands/generate/generators/migration.generator.js.map +1 -0
  17. package/esm/cli/commands/generate/generators/model.generator.d.ts +3 -0
  18. package/esm/cli/commands/generate/generators/model.generator.d.ts.map +1 -0
  19. package/esm/cli/commands/generate/generators/model.generator.js +56 -0
  20. package/esm/cli/commands/generate/generators/model.generator.js.map +1 -0
  21. package/esm/cli/commands/generate/generators/module.generator.d.ts +3 -0
  22. package/esm/cli/commands/generate/generators/module.generator.d.ts.map +1 -0
  23. package/esm/cli/commands/generate/generators/module.generator.js +156 -0
  24. package/esm/cli/commands/generate/generators/module.generator.js.map +1 -0
  25. package/esm/cli/commands/generate/generators/repository.generator.d.ts +3 -0
  26. package/esm/cli/commands/generate/generators/repository.generator.d.ts.map +1 -0
  27. package/esm/cli/commands/generate/generators/repository.generator.js +37 -0
  28. package/esm/cli/commands/generate/generators/repository.generator.js.map +1 -0
  29. package/esm/cli/commands/generate/generators/resource.generator.d.ts +3 -0
  30. package/esm/cli/commands/generate/generators/resource.generator.d.ts.map +1 -0
  31. package/esm/cli/commands/generate/generators/resource.generator.js +37 -0
  32. package/esm/cli/commands/generate/generators/resource.generator.js.map +1 -0
  33. package/esm/cli/commands/generate/generators/service.generator.d.ts +3 -0
  34. package/esm/cli/commands/generate/generators/service.generator.d.ts.map +1 -0
  35. package/esm/cli/commands/generate/generators/service.generator.js +37 -0
  36. package/esm/cli/commands/generate/generators/service.generator.js.map +1 -0
  37. package/esm/cli/commands/generate/generators/validation.generator.d.ts +3 -0
  38. package/esm/cli/commands/generate/generators/validation.generator.d.ts.map +1 -0
  39. package/esm/cli/commands/generate/generators/validation.generator.js +46 -0
  40. package/esm/cli/commands/generate/generators/validation.generator.js.map +1 -0
  41. package/esm/cli/commands/generate/templates/stubs.d.ts +111 -0
  42. package/esm/cli/commands/generate/templates/stubs.d.ts.map +1 -0
  43. package/esm/cli/commands/generate/templates/stubs.js +569 -0
  44. package/esm/cli/commands/generate/templates/stubs.js.map +1 -0
  45. package/esm/cli/commands/generate/types.d.ts +53 -0
  46. package/esm/cli/commands/generate/types.d.ts.map +1 -0
  47. package/esm/cli/commands/generate/utils/name-parser.d.ts +45 -0
  48. package/esm/cli/commands/generate/utils/name-parser.d.ts.map +1 -0
  49. package/esm/cli/commands/generate/utils/name-parser.js +76 -0
  50. package/esm/cli/commands/generate/utils/name-parser.js.map +1 -0
  51. package/esm/cli/commands/generate/utils/path-resolver.d.ts +30 -0
  52. package/esm/cli/commands/generate/utils/path-resolver.d.ts.map +1 -0
  53. package/esm/cli/commands/generate/utils/path-resolver.js +42 -0
  54. package/esm/cli/commands/generate/utils/path-resolver.js.map +1 -0
  55. package/esm/cli/commands/generate/utils/prompt.d.ts +13 -0
  56. package/esm/cli/commands/generate/utils/prompt.d.ts.map +1 -0
  57. package/esm/cli/framework-cli-commands.d.ts.map +1 -1
  58. package/esm/cli/framework-cli-commands.js +12 -1
  59. package/esm/cli/framework-cli-commands.js.map +1 -1
  60. package/esm/database/create-database-action.d.ts +3 -0
  61. package/esm/database/create-database-action.d.ts.map +1 -0
  62. package/esm/database/create-database-action.js +28 -0
  63. package/esm/database/create-database-action.js.map +1 -0
  64. package/esm/index.js +1 -1
  65. package/esm/resource/define-resource.d.ts.map +1 -1
  66. package/esm/resource/define-resource.js +6 -2
  67. package/esm/resource/define-resource.js.map +1 -1
  68. package/esm/resource/index.d.ts +1 -0
  69. package/esm/resource/index.d.ts.map +1 -1
  70. package/esm/resource/register-resource.d.ts +21 -0
  71. package/esm/resource/register-resource.d.ts.map +1 -0
  72. package/esm/resource/register-resource.js +23 -0
  73. package/esm/resource/register-resource.js.map +1 -0
  74. package/esm/resource/resource-field-builder.d.ts +22 -1
  75. package/esm/resource/resource-field-builder.d.ts.map +1 -1
  76. package/esm/resource/resource-field-builder.js +71 -14
  77. package/esm/resource/resource-field-builder.js.map +1 -1
  78. package/esm/resource/resource.d.ts +19 -8
  79. package/esm/resource/resource.d.ts.map +1 -1
  80. package/esm/resource/resource.js +59 -40
  81. package/esm/resource/resource.js.map +1 -1
  82. package/esm/resource/types.d.ts +25 -1
  83. package/esm/resource/types.d.ts.map +1 -1
  84. package/esm/router/types.d.ts +6 -0
  85. package/esm/router/types.d.ts.map +1 -1
  86. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-parser.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/utils/name-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE3C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAWhF;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/C;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,CAWpE"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Parse module path from input
3
+ * Examples:
4
+ * - "users/create-user" → { module: "users", name: "create-user" }
5
+ * - "create-user" → { module: undefined, name: "create-user" }
6
+ */
7
+ function parseModulePath(input) {
8
+ const parts = input.split("/");
9
+ if (parts.length === 1) {
10
+ return { name: parts[0] };
11
+ }
12
+ return {
13
+ module: parts[0],
14
+ name: parts.slice(1).join("/"),
15
+ };
16
+ }
17
+ /**
18
+ * Convert string to PascalCase
19
+ * Examples:
20
+ * - "create-user" → "CreateUser"
21
+ * - "create_user" → "CreateUser"
22
+ * - "createUser" → "CreateUser"
23
+ */
24
+ function toPascalCase(str) {
25
+ return str
26
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ""))
27
+ .replace(/^(.)/, (char) => char.toUpperCase());
28
+ }
29
+ /**
30
+ * Convert string to camelCase
31
+ * Examples:
32
+ * - "create-user" → "createUser"
33
+ * - "CreateUser" → "createUser"
34
+ */
35
+ function toCamelCase(str) {
36
+ const pascal = toPascalCase(str);
37
+ return pascal.charAt(0).toLowerCase() + pascal.slice(1);
38
+ }
39
+ /**
40
+ * Convert string to kebab-case
41
+ * Examples:
42
+ * - "CreateUser" → "create-user"
43
+ * - "createUser" → "create-user"
44
+ */
45
+ function toKebabCase(str) {
46
+ return str
47
+ .replace(/([a-z])([A-Z])/g, "$1-$2")
48
+ .replace(/[\s_]+/g, "-")
49
+ .toLowerCase();
50
+ }
51
+ /**
52
+ * Convert string to snake_case
53
+ * Examples:
54
+ * - "CreateUser" → "create_user"
55
+ * - "create-user" → "create_user"
56
+ */
57
+ function toSnakeCase(str) {
58
+ return str
59
+ .replace(/([a-z])([A-Z])/g, "$1_$2")
60
+ .replace(/[\s-]+/g, "_")
61
+ .toLowerCase();
62
+ }
63
+ /**
64
+ * Parse name into all case variants
65
+ */
66
+ function parseName(input, module) {
67
+ const kebab = toKebabCase(input);
68
+ return {
69
+ raw: input,
70
+ pascal: toPascalCase(input),
71
+ camel: toCamelCase(input),
72
+ kebab,
73
+ snake: toSnakeCase(input),
74
+ module,
75
+ };
76
+ }export{parseModulePath,parseName,toCamelCase,toKebabCase,toPascalCase,toSnakeCase};//# sourceMappingURL=name-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name-parser.js","sources":["../../../../../src/cli/commands/generate/utils/name-parser.ts"],"sourcesContent":[null],"names":[],"mappings":"AAEA;;;;;AAKG;AACG,SAAU,eAAe,CAAC,KAAa,EAAA;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE/B,IAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;AAC3B,KAAA;IAED,OAAO;AACL,QAAA,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;QAChB,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED;;;;;;AAMG;AACG,SAAU,YAAY,CAAC,GAAW,EAAA;AACtC,IAAA,OAAO,GAAG;SACP,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,IAAI,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AACtE,SAAA,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;AAKG;AACG,SAAU,WAAW,CAAC,GAAW,EAAA;AACrC,IAAA,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;AACjC,IAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;AAKG;AACG,SAAU,WAAW,CAAC,GAAW,EAAA;AACrC,IAAA,OAAO,GAAG;AACP,SAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACnC,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,SAAA,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;;;;AAKG;AACG,SAAU,WAAW,CAAC,GAAW,EAAA;AACrC,IAAA,OAAO,GAAG;AACP,SAAA,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACnC,SAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,SAAA,WAAW,EAAE,CAAC;AACnB,CAAC;AAED;;AAEG;AACa,SAAA,SAAS,CAAC,KAAa,EAAE,MAAe,EAAA;AACtD,IAAA,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEjC,OAAO;AACL,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC;AAC3B,QAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;QACzB,KAAK;AACL,QAAA,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;QACzB,MAAM;KACP,CAAC;AACJ"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Resolve module path
3
+ * Returns absolute path to module directory
4
+ */
5
+ export declare function resolveModulePath(module: string): string;
6
+ /**
7
+ * Resolve component path within a module
8
+ * @param module - Module name (e.g., "users")
9
+ * @param type - Component type (e.g., "controllers", "services")
10
+ * @param name - Component name (e.g., "create-user")
11
+ * @param extension - File extension (default: ".ts")
12
+ */
13
+ export declare function resolveComponentPath(module: string, type: string, name: string, extension?: string): string;
14
+ /**
15
+ * Check if module exists
16
+ */
17
+ export declare function moduleExists(module: string): Promise<boolean>;
18
+ /**
19
+ * Check if file exists
20
+ */
21
+ export declare function componentExists(module: string, type: string, name: string, extension?: string): Promise<boolean>;
22
+ /**
23
+ * Ensure directory exists, create if missing
24
+ */
25
+ export declare function ensureDirectory(dirPath: string): Promise<void>;
26
+ /**
27
+ * Ensure component directory exists
28
+ */
29
+ export declare function ensureComponentDirectory(module: string, type: string): Promise<void>;
30
+ //# sourceMappingURL=path-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/utils/path-resolver.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,SAAQ,GAChB,MAAM,CAER;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAEnE;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,SAAQ,GAChB,OAAO,CAAC,OAAO,CAAC,CAElB;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG1F"}
@@ -0,0 +1,42 @@
1
+ import {fileExistsAsync,ensureDirectoryAsync}from'@mongez/fs';import path from'node:path';import'@warlock.js/logger';import'../../../../database/models/database-log/database-log.js';import'../../../../http/context/request-context.js';import {appPath}from'../../../../utils/paths.js';import'@mongez/slug';import'@mongez/supportive-is';import'@mongez/reinforcements';/**
2
+ * Resolve module path
3
+ * Returns absolute path to module directory
4
+ */
5
+ function resolveModulePath(module) {
6
+ return appPath(module);
7
+ }
8
+ /**
9
+ * Resolve component path within a module
10
+ * @param module - Module name (e.g., "users")
11
+ * @param type - Component type (e.g., "controllers", "services")
12
+ * @param name - Component name (e.g., "create-user")
13
+ * @param extension - File extension (default: ".ts")
14
+ */
15
+ function resolveComponentPath(module, type, name, extension = ".ts") {
16
+ return path.join(resolveModulePath(module), type, `${name}${extension}`);
17
+ }
18
+ /**
19
+ * Check if module exists
20
+ */
21
+ async function moduleExists(module) {
22
+ return (await fileExistsAsync(resolveModulePath(module)));
23
+ }
24
+ /**
25
+ * Check if file exists
26
+ */
27
+ async function componentExists(module, type, name, extension = ".ts") {
28
+ return (await fileExistsAsync(resolveComponentPath(module, type, name, extension)));
29
+ }
30
+ /**
31
+ * Ensure directory exists, create if missing
32
+ */
33
+ async function ensureDirectory(dirPath) {
34
+ await ensureDirectoryAsync(dirPath);
35
+ }
36
+ /**
37
+ * Ensure component directory exists
38
+ */
39
+ async function ensureComponentDirectory(module, type) {
40
+ const dirPath = path.join(resolveModulePath(module), type);
41
+ await ensureDirectory(dirPath);
42
+ }export{componentExists,ensureComponentDirectory,ensureDirectory,moduleExists,resolveComponentPath,resolveModulePath};//# sourceMappingURL=path-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-resolver.js","sources":["../../../../../src/cli/commands/generate/utils/path-resolver.ts"],"sourcesContent":[null],"names":[],"mappings":"6WAIA;;;AAGG;AACG,SAAU,iBAAiB,CAAC,MAAc,EAAA;AAC9C,IAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;AAMG;AACG,SAAU,oBAAoB,CAClC,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,SAAS,GAAG,KAAK,EAAA;AAEjB,IAAA,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAG,EAAA,IAAI,GAAG,SAAS,CAAA,CAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;AAEG;AACI,eAAe,YAAY,CAAC,MAAc,EAAA;IAC/C,QAAQ,MAAM,eAAe,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,EAAa;AACvE,CAAC;AAED;;AAEG;AACI,eAAe,eAAe,CACnC,MAAc,EACd,IAAY,EACZ,IAAY,EACZ,SAAS,GAAG,KAAK,EAAA;AAEjB,IAAA,QAAQ,MAAM,eAAe,CAAC,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,EAAa;AACjG,CAAC;AAED;;AAEG;AACI,eAAe,eAAe,CAAC,OAAe,EAAA;AACnD,IAAA,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED;;AAEG;AACI,eAAe,wBAAwB,CAAC,MAAc,EAAE,IAAY,EAAA;AACzE,IAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AAC3D,IAAA,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;AACjC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Prompt user for confirmation
3
+ */
4
+ export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
5
+ /**
6
+ * Prompt user for text input
7
+ */
8
+ export declare function input(message: string, defaultValue?: string): Promise<string>;
9
+ /**
10
+ * Prompt user to select from choices
11
+ */
12
+ export declare function select(message: string, choices: string[]): Promise<string>;
13
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/generate/utils/prompt.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAoBrF;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAcnF;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"framework-cli-commands.d.ts","sourceRoot":"","sources":["../../src/cli/framework-cli-commands.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,iBAAiB,sCAY7B,CAAC"}
1
+ {"version":3,"file":"framework-cli-commands.d.ts","sourceRoot":"","sources":["../../src/cli/framework-cli-commands.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,iBAAiB,sCAwB7B,CAAC"}
@@ -1,4 +1,4 @@
1
- import {addCommand}from'./commands/add.command.js';import {buildCommand}from'./commands/build.command.js';import {devServerCommand}from'./commands/dev-server.command.js';import {migrateCommand}from'./commands/migrate.command.js';import {seedCommand}from'./commands/seed.command.js';import {startProductionCommand}from'./commands/start-production.command.js';import {typingsGeneratorCommand}from'./commands/typings-generator.command.js';const frameworkCommands = [
1
+ import {addCommand}from'./commands/add.command.js';import {buildCommand}from'./commands/build.command.js';import {devServerCommand}from'./commands/dev-server.command.js';import {generateCommand,generateModuleCommand,generateControllerCommand,generateServiceCommand,generateModelCommand,generateRepositoryCommand,generateResourceCommand,generateValidationCommand,generateMigrationCommand}from'./commands/generate/generate.command.js';import {migrateCommand}from'./commands/migrate.command.js';import {seedCommand}from'./commands/seed.command.js';import {createDatabaseCommand}from'./commands/create-database.command.js';import {startProductionCommand}from'./commands/start-production.command.js';import {typingsGeneratorCommand}from'./commands/typings-generator.command.js';const frameworkCommands = [
2
2
  devServerCommand,
3
3
  buildCommand,
4
4
  startProductionCommand,
@@ -6,6 +6,17 @@ import {addCommand}from'./commands/add.command.js';import {buildCommand}from'./c
6
6
  // database commands
7
7
  migrateCommand,
8
8
  seedCommand,
9
+ createDatabaseCommand,
9
10
  // generation/installation commands
10
11
  addCommand,
12
+ // scaffolding commands
13
+ generateCommand,
14
+ generateModuleCommand,
15
+ generateControllerCommand,
16
+ generateServiceCommand,
17
+ generateModelCommand,
18
+ generateRepositoryCommand,
19
+ generateResourceCommand,
20
+ generateValidationCommand,
21
+ generateMigrationCommand,
11
22
  ];export{frameworkCommands};//# sourceMappingURL=framework-cli-commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"framework-cli-commands.js","sources":["../../src/cli/framework-cli-commands.ts"],"sourcesContent":[null],"names":[],"mappings":"obAQa,MAAA,iBAAiB,GAAG;IAC/B,gBAAgB;IAChB,YAAY;IACZ,sBAAsB;IACtB,uBAAuB;;IAGvB,cAAc;IACd,WAAW;;IAGX,UAAU;"}
1
+ {"version":3,"file":"framework-cli-commands.js","sources":["../../src/cli/framework-cli-commands.ts"],"sourcesContent":[null],"names":[],"mappings":"qwBAqBa,MAAA,iBAAiB,GAAG;IAC/B,gBAAgB;IAChB,YAAY;IACZ,sBAAsB;IACtB,uBAAuB;;IAGvB,cAAc;IACd,WAAW;IACX,qBAAqB;;IAGrB,UAAU;;IAGV,eAAe;IACf,qBAAqB;IACrB,yBAAyB;IACzB,sBAAsB;IACtB,oBAAoB;IACpB,yBAAyB;IACzB,uBAAuB;IACvB,yBAAyB;IACzB,wBAAwB;"}
@@ -0,0 +1,3 @@
1
+ import { CommandActionData } from "../cli/types";
2
+ export declare function createDatabaseAction(command: CommandActionData): Promise<void>;
3
+ //# sourceMappingURL=create-database-action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-database-action.d.ts","sourceRoot":"","sources":["../../src/database/create-database-action.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAGjD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,iBA8CpE"}
@@ -0,0 +1,28 @@
1
+ import {colors}from'@mongez/copper';import {dataSourceRegistry}from'@warlock.js/cascade';import {log}from'@warlock.js/logger';import {config}from'../config/config-getter.js';import'../config/config-handlers.js';async function createDatabaseAction(command) {
2
+ const name = command.args[0];
3
+ const { connection = "default" } = command.options;
4
+ const dataSource = dataSourceRegistry.get(connection === "default" || connection === true ? undefined : String(connection));
5
+ let databaseName = name;
6
+ if (!databaseName) {
7
+ if (connection === "default") {
8
+ databaseName = config.get("database")?.database;
9
+ }
10
+ }
11
+ if (!databaseName) {
12
+ log.error("database", "create", "Database name is required. Please provide a name or configure it in the database config.");
13
+ return;
14
+ }
15
+ log.info("database", "create", `Creating database ${colors.cyan(databaseName)}...`);
16
+ try {
17
+ const created = await dataSource.driver.createDatabase(databaseName);
18
+ if (created) {
19
+ log.success("database", "create", `Database ${colors.green(databaseName)} created successfully.`);
20
+ }
21
+ else {
22
+ log.warn("database", "create", `Database ${colors.yellow(databaseName)} already exists.`);
23
+ }
24
+ }
25
+ catch (error) {
26
+ log.error("database", "create", `Failed to create database ${colors.red(databaseName)}: ${error.message}`);
27
+ }
28
+ }export{createDatabaseAction};//# sourceMappingURL=create-database-action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-database-action.js","sources":["../../src/database/create-database-action.ts"],"sourcesContent":[null],"names":[],"mappings":"mNAMO,eAAe,oBAAoB,CAAC,OAA0B,EAAA;IACnE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnD,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CACvC,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,CACjF,CAAC;IAEF,IAAI,YAAY,GAAG,IAAI,CAAC;IAExB,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,UAAU,KAAK,SAAS,EAAE;YAC5B,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC;AACjD,SAAA;AACF,KAAA;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,GAAG,CAAC,KAAK,CACP,UAAU,EACV,QAAQ,EACR,0FAA0F,CAC3F,CAAC;QACF,OAAO;AACR,KAAA;AAED,IAAA,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAA,kBAAA,EAAqB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,GAAA,CAAK,CAAC,CAAC;IAEpF,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAErE,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,GAAG,CAAC,OAAO,CACT,UAAU,EACV,QAAQ,EACR,CAAA,SAAA,EAAY,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA,sBAAA,CAAwB,CAC/D,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,CAAA,SAAA,EAAY,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA,gBAAA,CAAkB,CAAC,CAAC;AAC3F,SAAA;AACF,KAAA;AAAC,IAAA,OAAO,KAAU,EAAE;QACnB,GAAG,CAAC,KAAK,CACP,UAAU,EACV,QAAQ,EACR,6BAA6B,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAK,EAAA,EAAA,KAAK,CAAC,OAAO,CAAA,CAAE,CAC1E,CAAC;AACH,KAAA;AACH"}
package/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{env}from'@mongez/dotenv';import'./validation/init.js';export{colors}from'@mongez/copper';export*from'@mongez/localization';export{Application}from'./application/application.js';export{bootstrap}from'./bootstrap.js';export{displayEnvironmentMode}from'./bootstrap/setup.js';import'./cache/index.js';export{CLICommand,command}from'./cli/cli-command.js';export{config}from'./config/config-getter.js';export{registerAppConfig,registerLogConfig,registerMailConfig}from'./config/config-handlers.js';export{ConfigSpecialHandlers,configSpecialHandlers}from'./config/config-special-handlers.js';export{DatabaseLogModel}from'./database/models/database-log/database-log.js';export{seeder}from'./database/seeds/seeder.js';export{useComputedModel,useComputedSlug,useHashedPassword}from'./database/utils.js';export{BaseConnector}from'./dev2-server/connectors/base-connector.js';export{CacheConnector}from'./dev2-server/connectors/cache-connector.js';export{CommunicatorConnector}from'./dev2-server/connectors/communicator-connector.js';export{ConnectorsManager,connectorsManager}from'./dev2-server/connectors/connectors-manager.js';export{DatabaseConnector}from'./dev2-server/connectors/database-connector.js';export{HttpConnector}from'./dev2-server/connectors/http-connector.js';export{StorageConnector}from'./dev2-server/connectors/storage.connector.js';export{ConnectorPriority}from'./dev2-server/connectors/types.js';export{BaseHealthChecker}from'./dev2-server/health-checker/checkers/base-health-checker.js';export{EslintHealthChecker}from'./dev2-server/health-checker/checkers/eslint-health-checker.js';export{TypescriptHealthChecker}from'./dev2-server/health-checker/checkers/typescript-health-checker.js';import'./dev2-server/health-checker/workers/eslint-health.worker.js';import'./dev2-server/health-checker/workers/ts-health.worker.js';export{defaultHttpConfigurations,httpConfig}from'./http/config.js';export{createHttpApplication,stopHttpApplication}from'./http/createHttpApplication.js';export{RequestLog}from'./http/database/RequestLog.js';export{logResponse,wrapResponseInDataKey}from'./http/events.js';export{RequestController}from'./http/request-controller.js';export{UploadedFile}from'./http/uploaded-file.js';export{UPLOADS_DEFAULTS,uploadsConfig}from'./http/uploads-config.js';export{BadRequestError,ConflictError,ForbiddenError,HttpError,NotAcceptableError,NotAllowedError,ResourceNotFoundError,ServerError,UnAuthorizedError}from'./http/errors/errors.js';export{cacheMiddleware}from'./http/middleware/cache-response-middleware.js';export{createRequestStore,fromRequest,t}from'./http/middleware/inject-request-context.js';export{registerHttpPlugins}from'./http/plugins.js';export{Request}from'./http/request.js';export{Response,ResponseStatus}from'./http/response.js';export{getServer,startServer}from'./http/server.js';export{requestContext,useCurrentUser,useRequest,useRequestStore}from'./http/context/request-context.js';export{Image}from'./image/image.js';export{setLogConfigurations}from'./logger/logger.js';export{getDefaultMailConfig,getMailMode,getMailerConfig,isDevelopmentMode,isProductionMode,isTestMode,resetMailConfig,resolveMailConfig,setMailConfigurations,setMailMode}from'./mail/config.js';export{MAIL_EVENTS,generateMailId,getMailEventName,mailEvents}from'./mail/events.js';export{closeAllMailers,closeMailer,getMailer,getPoolStats,verifyMailer}from'./mail/mailer-pool.js';export{renderReactMail}from'./mail/react-mail.js';export{sendMail}from'./mail/send-mail.js';export{Mail}from'./mail/mail.js';export{assertMailCount,assertMailSent,captureMail,clearTestMailbox,findMailsBySubject,findMailsTo,getLastMail,getMailboxSize,getTestMailbox,wasMailSentTo,wasMailSentWithSubject}from'./mail/test-mailbox.js';export{MailError}from'./mail/types.js';export{renderReact}from'./react/index.js';export{CascadeAdapter}from'./repositories/adapters/cascade/cascade-adapter.js';export{CascadeQueryBuilder}from'./repositories/adapters/cascade/cascade-query-builder.js';export{RepositoryManager}from'./repositories/repository.manager.js';export{defineResource}from'./resource/define-resource.js';export{Resource}from'./resource/resource.js';export{ResourceFieldBuilder}from'./resource/resource-field-builder.js';export{Restful}from'./restful/restful.js';export{Router,router}from'./router/router.js';export{storageConfig,storageConfigurations}from'./storage/config.js';export{ScopedStorage}from'./storage/scoped-storage.js';export{Storage,storage}from'./storage/storage.js';export{StorageFile}from'./storage/storage-file.js';export{storageDriverContext}from'./storage/context/storage-driver-context.js';export{MimeTypes,getMimeType}from'./storage/utils/mime.js';export{CloudDriver}from'./storage/drivers/cloud-driver.js';export{DOSpacesDriver}from'./storage/drivers/do-spaces-driver.js';export{LocalDriver}from'./storage/drivers/local-driver.js';export{R2Driver}from'./storage/drivers/r2-driver.js';export{S3Driver}from'./storage/drivers/s3-driver.js';export{createStore,useStore}from'./store/index.js';export{startHttpTestServer,stopHttpTestServer}from'./tests/start-http-development-server.js';export{setupTest}from'./tests/vitest-setup.js';export{appLog}from'./utils/app-log.js';export{DatabaseLog}from'./utils/database-log.js';export{environment,setEnvironment}from'./utils/environment.js';export{getLocalized}from'./utils/get-localized.js';export{appPath,cachePath,configPath,consolePath,publicPath,rootPath,sanitizePath,srcPath,storagePath,tempPath,uploadsPath,warlockPath}from'./utils/paths.js';export{promiseAllObject}from'./utils/promise-all-object.js';export{Queue}from'./utils/queue.js';export{sleep}from'./utils/sleep.js';export{sluggable}from'./utils/sluggable.js';export{toJson}from'./utils/to-json.js';export{assetsUrl,publicUrl,setBaseUrl,uploadsUrl,url}from'./utils/urls.js';export{FileValidator,uploadedFileMetadataSchema}from'./validation/validators/file-validator.js';export{existsRule}from'./validation/database/exists.js';export{existsExceptCurrentIdRule}from'./validation/database/exists-except-current-id.js';export{existsExceptCurrentUserRule}from'./validation/database/exists-except-current-user.js';export{uniqueRule}from'./validation/database/unique.js';export{uniqueExceptCurrentIdRule}from'./validation/database/unique-except-current-id.js';export{uniqueExceptCurrentUserRule}from'./validation/database/unique-except-current-user.js';export{fileExtensionRule,fileRule,fileTypeRule,imageRule}from'./validation/file/file.js';export{v}from'@warlock.js/seal';export{defineConfig}from'./warlock-config/define-config.js';export{WarlockConfigManager,warlockConfigManager}from'./warlock-config/warlock-config.manager.js';export{DatabaseCacheDriver}from'./cache/database-cache-driver.js';//# sourceMappingURL=index.js.map
1
+ export{env}from'@mongez/dotenv';import'./validation/init.js';export{colors}from'@mongez/copper';export*from'@mongez/localization';export{Application}from'./application/application.js';export{bootstrap}from'./bootstrap.js';export{displayEnvironmentMode}from'./bootstrap/setup.js';import'./cache/index.js';export{CLICommand,command}from'./cli/cli-command.js';export{config}from'./config/config-getter.js';export{registerAppConfig,registerLogConfig,registerMailConfig}from'./config/config-handlers.js';export{ConfigSpecialHandlers,configSpecialHandlers}from'./config/config-special-handlers.js';export{DatabaseLogModel}from'./database/models/database-log/database-log.js';export{seeder}from'./database/seeds/seeder.js';export{useComputedModel,useComputedSlug,useHashedPassword}from'./database/utils.js';export{BaseConnector}from'./dev2-server/connectors/base-connector.js';export{CacheConnector}from'./dev2-server/connectors/cache-connector.js';export{CommunicatorConnector}from'./dev2-server/connectors/communicator-connector.js';export{ConnectorsManager,connectorsManager}from'./dev2-server/connectors/connectors-manager.js';export{DatabaseConnector}from'./dev2-server/connectors/database-connector.js';export{HttpConnector}from'./dev2-server/connectors/http-connector.js';export{StorageConnector}from'./dev2-server/connectors/storage.connector.js';export{ConnectorPriority}from'./dev2-server/connectors/types.js';export{BaseHealthChecker}from'./dev2-server/health-checker/checkers/base-health-checker.js';export{EslintHealthChecker}from'./dev2-server/health-checker/checkers/eslint-health-checker.js';export{TypescriptHealthChecker}from'./dev2-server/health-checker/checkers/typescript-health-checker.js';import'./dev2-server/health-checker/workers/eslint-health.worker.js';import'./dev2-server/health-checker/workers/ts-health.worker.js';export{defaultHttpConfigurations,httpConfig}from'./http/config.js';export{createHttpApplication,stopHttpApplication}from'./http/createHttpApplication.js';export{RequestLog}from'./http/database/RequestLog.js';export{logResponse,wrapResponseInDataKey}from'./http/events.js';export{RequestController}from'./http/request-controller.js';export{UploadedFile}from'./http/uploaded-file.js';export{UPLOADS_DEFAULTS,uploadsConfig}from'./http/uploads-config.js';export{BadRequestError,ConflictError,ForbiddenError,HttpError,NotAcceptableError,NotAllowedError,ResourceNotFoundError,ServerError,UnAuthorizedError}from'./http/errors/errors.js';export{cacheMiddleware}from'./http/middleware/cache-response-middleware.js';export{createRequestStore,fromRequest,t}from'./http/middleware/inject-request-context.js';export{registerHttpPlugins}from'./http/plugins.js';export{Request}from'./http/request.js';export{Response,ResponseStatus}from'./http/response.js';export{getServer,startServer}from'./http/server.js';export{requestContext,useCurrentUser,useRequest,useRequestStore}from'./http/context/request-context.js';export{Image}from'./image/image.js';export{setLogConfigurations}from'./logger/logger.js';export{getDefaultMailConfig,getMailMode,getMailerConfig,isDevelopmentMode,isProductionMode,isTestMode,resetMailConfig,resolveMailConfig,setMailConfigurations,setMailMode}from'./mail/config.js';export{MAIL_EVENTS,generateMailId,getMailEventName,mailEvents}from'./mail/events.js';export{closeAllMailers,closeMailer,getMailer,getPoolStats,verifyMailer}from'./mail/mailer-pool.js';export{renderReactMail}from'./mail/react-mail.js';export{sendMail}from'./mail/send-mail.js';export{Mail}from'./mail/mail.js';export{assertMailCount,assertMailSent,captureMail,clearTestMailbox,findMailsBySubject,findMailsTo,getLastMail,getMailboxSize,getTestMailbox,wasMailSentTo,wasMailSentWithSubject}from'./mail/test-mailbox.js';export{MailError}from'./mail/types.js';export{renderReact}from'./react/index.js';export{CascadeAdapter}from'./repositories/adapters/cascade/cascade-adapter.js';export{CascadeQueryBuilder}from'./repositories/adapters/cascade/cascade-query-builder.js';export{RepositoryManager}from'./repositories/repository.manager.js';export{defineResource}from'./resource/define-resource.js';export{RegisterResource}from'./resource/register-resource.js';export{Resource}from'./resource/resource.js';export{ResourceFieldBuilder}from'./resource/resource-field-builder.js';export{Restful}from'./restful/restful.js';export{Router,router}from'./router/router.js';export{storageConfig,storageConfigurations}from'./storage/config.js';export{ScopedStorage}from'./storage/scoped-storage.js';export{Storage,storage}from'./storage/storage.js';export{StorageFile}from'./storage/storage-file.js';export{storageDriverContext}from'./storage/context/storage-driver-context.js';export{MimeTypes,getMimeType}from'./storage/utils/mime.js';export{CloudDriver}from'./storage/drivers/cloud-driver.js';export{DOSpacesDriver}from'./storage/drivers/do-spaces-driver.js';export{LocalDriver}from'./storage/drivers/local-driver.js';export{R2Driver}from'./storage/drivers/r2-driver.js';export{S3Driver}from'./storage/drivers/s3-driver.js';export{createStore,useStore}from'./store/index.js';export{startHttpTestServer,stopHttpTestServer}from'./tests/start-http-development-server.js';export{setupTest}from'./tests/vitest-setup.js';export{appLog}from'./utils/app-log.js';export{DatabaseLog}from'./utils/database-log.js';export{environment,setEnvironment}from'./utils/environment.js';export{getLocalized}from'./utils/get-localized.js';export{appPath,cachePath,configPath,consolePath,publicPath,rootPath,sanitizePath,srcPath,storagePath,tempPath,uploadsPath,warlockPath}from'./utils/paths.js';export{promiseAllObject}from'./utils/promise-all-object.js';export{Queue}from'./utils/queue.js';export{sleep}from'./utils/sleep.js';export{sluggable}from'./utils/sluggable.js';export{toJson}from'./utils/to-json.js';export{assetsUrl,publicUrl,setBaseUrl,uploadsUrl,url}from'./utils/urls.js';export{FileValidator,uploadedFileMetadataSchema}from'./validation/validators/file-validator.js';export{existsRule}from'./validation/database/exists.js';export{existsExceptCurrentIdRule}from'./validation/database/exists-except-current-id.js';export{existsExceptCurrentUserRule}from'./validation/database/exists-except-current-user.js';export{uniqueRule}from'./validation/database/unique.js';export{uniqueExceptCurrentIdRule}from'./validation/database/unique-except-current-id.js';export{uniqueExceptCurrentUserRule}from'./validation/database/unique-except-current-user.js';export{fileExtensionRule,fileRule,fileTypeRule,imageRule}from'./validation/file/file.js';export{v}from'@warlock.js/seal';export{defineConfig}from'./warlock-config/define-config.js';export{WarlockConfigManager,warlockConfigManager}from'./warlock-config/warlock-config.manager.js';export{DatabaseCacheDriver}from'./cache/database-cache-driver.js';//# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-resource.d.ts","sourceRoot":"","sources":["../../src/resource/define-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CAoBlF"}
1
+ {"version":3,"file":"define-resource.d.ts","sourceRoot":"","sources":["../../src/resource/define-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACvF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC;;OAEG;IACH,MAAM,EAAE,cAAc,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE7C;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,gBAAgB,KAAK,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC5F,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,mBAAmB,CA0BlF"}
@@ -39,8 +39,8 @@ import {Resource}from'./resource.js';/**
39
39
  * ```
40
40
  */
41
41
  function defineResource(options) {
42
- return class AnonymousResource extends Resource {
43
- schema = options.schema;
42
+ const resource = class AnonymousResource extends Resource {
43
+ static schema = options.schema;
44
44
  boot() {
45
45
  if (options.boot) {
46
46
  options.boot.call(this, this);
@@ -55,4 +55,8 @@ function defineResource(options) {
55
55
  }
56
56
  }
57
57
  };
58
+ // Normalize schema once at definition time — converts string cast types
59
+ // (including [] and ? suffixes) into pre-built ResourceFieldBuilder instances
60
+ resource.parsedSchema = Resource.normalizeSchema(resource.schema);
61
+ return resource;
58
62
  }export{defineResource};//# sourceMappingURL=define-resource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-resource.js","sources":["../../src/resource/define-resource.ts"],"sourcesContent":[null],"names":[],"mappings":"qCA4BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACG,SAAU,cAAc,CAAC,OAA8B,EAAA;IAC3D,OAAO,MAAM,iBAAkB,SAAQ,QAAQ,CAAA;AACtC,QAAA,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAErB,IAAI,GAAA;YACZ,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAmC,CAAC,CAAC;AAC9D,aAAA;SACF;QAES,MAAM,GAAA;YACd,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAmC,CAAC,CAAC;AAChE,aAAA;YAED,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,gBAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/C,aAAA;SACF;KAC4B,CAAC;AAClC"}
1
+ {"version":3,"file":"define-resource.js","sources":["../../src/resource/define-resource.ts"],"sourcesContent":[null],"names":[],"mappings":"qCA4BA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;AACG,SAAU,cAAc,CAAC,OAA8B,EAAA;AAC3D,IAAA,MAAM,QAAQ,GAAG,MAAM,iBAAkB,SAAQ,QAAQ,CAAA;AACvD,QAAA,OAAO,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAErB,IAAI,GAAA;YACZ,IAAI,OAAO,CAAC,IAAI,EAAE;gBAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAmC,CAAC,CAAC;AAC9D,aAAA;SACF;QAES,MAAM,GAAA;YACd,IAAI,OAAO,CAAC,MAAM,EAAE;gBAClB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAmC,CAAC,CAAC;AAChE,aAAA;YAED,IAAI,OAAO,CAAC,SAAS,EAAE;AACrB,gBAAA,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAC/C,aAAA;SACF;KACF,CAAC;;;IAIF,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAElE,IAAA,OAAO,QAAsC,CAAC;AAChD"}
@@ -1,4 +1,5 @@
1
1
  export * from "./define-resource";
2
+ export * from "./register-resource";
2
3
  export * from "./resource";
3
4
  export * from "./resource-field-builder";
4
5
  export * from "./types";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resource/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resource/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,cAAc,0BAA0B,CAAC;AACzC,cAAc,SAAS,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { Resource } from "./resource";
2
+ /**
3
+ * Decorator for hand-written Resource classes.
4
+ * Triggers one-time schema normalization (converts string cast types into
5
+ * pre-built ResourceFieldBuilder instances) so transformOutput runs against
6
+ * builders without per-call overhead.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * @RegisterResource()
11
+ * class PostResource extends Resource {
12
+ * static schema = {
13
+ * id: "number",
14
+ * title: "string",
15
+ * keywords: "string[]",
16
+ * };
17
+ * }
18
+ * ```
19
+ */
20
+ export declare function RegisterResource(): (target: typeof Resource) => void;
21
+ //# sourceMappingURL=register-resource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-resource.d.ts","sourceRoot":"","sources":["../../src/resource/register-resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,aACL,eAAe,UAGzC"}
@@ -0,0 +1,23 @@
1
+ import {Resource}from'./resource.js';/**
2
+ * Decorator for hand-written Resource classes.
3
+ * Triggers one-time schema normalization (converts string cast types into
4
+ * pre-built ResourceFieldBuilder instances) so transformOutput runs against
5
+ * builders without per-call overhead.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * @RegisterResource()
10
+ * class PostResource extends Resource {
11
+ * static schema = {
12
+ * id: "number",
13
+ * title: "string",
14
+ * keywords: "string[]",
15
+ * };
16
+ * }
17
+ * ```
18
+ */
19
+ function RegisterResource() {
20
+ return function (target) {
21
+ target.parsedSchema = Resource.normalizeSchema(target.schema);
22
+ };
23
+ }export{RegisterResource};//# sourceMappingURL=register-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-resource.js","sources":["../../src/resource/register-resource.ts"],"sourcesContent":[null],"names":[],"mappings":"qCAEA;;;;;;;;;;;;;;;;;AAiBG;SACa,gBAAgB,GAAA;AAC9B,IAAA,OAAO,UAAU,MAAuB,EAAA;QACtC,MAAM,CAAC,YAAY,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAChE,KAAC,CAAC;AACJ"}
@@ -11,6 +11,11 @@ export declare class ResourceFieldBuilder {
11
11
  * If set to false and value is null, it will be returned as undefined
12
12
  */
13
13
  protected isNullable: boolean;
14
+ /**
15
+ * Whether this field is an array
16
+ * When true, transform() maps over each element using the base type
17
+ */
18
+ protected isArrayField: boolean;
14
19
  /**
15
20
  * Default value
16
21
  */
@@ -37,6 +42,12 @@ export declare class ResourceFieldBuilder {
37
42
  * Constructor
38
43
  */
39
44
  constructor(type: ResourceOutputValueCastType);
45
+ /**
46
+ * Parse a cast type string (including suffixes) into a configured builder.
47
+ * Suffix order: [] before ? (e.g. "string[]?")
48
+ * Parsing strips right-to-left: ? first, then [].
49
+ */
50
+ static fromCastType(castType: string): ResourceFieldBuilder;
40
51
  /**
41
52
  * Set input key
42
53
  * Will be used in transformation if provided
@@ -50,6 +61,11 @@ export declare class ResourceFieldBuilder {
50
61
  * Set whether the value is nullable
51
62
  */
52
63
  nullable(): this;
64
+ /**
65
+ * Mark this field as an array
66
+ * transform() will map over each element using the base type
67
+ */
68
+ array(): this;
53
69
  /**
54
70
  * Get input key
55
71
  */
@@ -68,9 +84,14 @@ export declare class ResourceFieldBuilder {
68
84
  */
69
85
  dateOptions(options: ResourceFieldBuilderDateOutputOptions): this;
70
86
  /**
71
- * Transform the value
87
+ * Transform the value.
88
+ * When isArrayField is true, maps over each element using transformSingleValue.
72
89
  */
73
90
  transform(value: any, locale?: string): any;
91
+ /**
92
+ * Transform a single value according to the base type.
93
+ */
94
+ protected transformSingleValue(value: any, locale?: string): any;
74
95
  /**
75
96
  * Transform date value
76
97
  */
@@ -1 +1 @@
1
- {"version":3,"file":"resource-field-builder.d.ts","sourceRoot":"","sources":["../../src/resource/resource-field-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,KAAK,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAElG,qBAAa,oBAAoB;IAiDZ,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,2BAA2B;IAhDvE;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,UAAU,UAAS;IAE7B;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,UAAU,SAA2B;IAE/C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAEpC;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,EAAE,qCAAqC,CAO/D;IAEF;;OAEG;gBACmC,IAAI,EAAE,2BAA2B;IAIvE;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM;IAM9B;;OAEG;IACI,IAAI,CAAC,SAAS,EAAE,MAAM,OAAO;IAKpC;;OAEG;IACI,QAAQ;IAKf;;OAEG;IACI,WAAW;IAIlB;;OAEG;IACI,OAAO,CAAC,KAAK,EAAE,OAAO;IAM7B;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM;IAM5B;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,qCAAqC;IAMjE;;OAEG;IACI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAqC5C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM;IAwD7D;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAWhF"}
1
+ {"version":3,"file":"resource-field-builder.d.ts","sourceRoot":"","sources":["../../src/resource/resource-field-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qCAAqC,EAAE,KAAK,2BAA2B,EAAE,MAAM,SAAS,CAAC;AAElG,qBAAa,oBAAoB;IAuDZ,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,2BAA2B;IAtDvE;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,UAAU,UAAS;IAE7B;;;OAGG;IACH,SAAS,CAAC,YAAY,UAAS;IAE/B;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,UAAU,SAA2B;IAE/C;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC;IAEpC;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,EAAE,qCAAqC,CAO/D;IAEF;;OAEG;gBACmC,IAAI,EAAE,2BAA2B;IAIvE;;;;OAIG;WACW,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAqBlE;;;OAGG;IACI,WAAW,CAAC,GAAG,EAAE,MAAM;IAM9B;;OAEG;IACI,IAAI,CAAC,SAAS,EAAE,MAAM,OAAO;IAKpC;;OAEG;IACI,QAAQ;IAKf;;;OAGG;IACI,KAAK;IAKZ;;OAEG;IACI,WAAW;IAIlB;;OAEG;IACI,OAAO,CAAC,KAAK,EAAE,OAAO;IAM7B;;OAEG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM;IAM5B;;;OAGG;IACI,WAAW,CAAC,OAAO,EAAE,qCAAqC;IAMjE;;;OAGG;IACI,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IAc5C;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,MAAM;IA2C1D;;OAEG;IACH,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM;IAwD7D;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;CAWhF"}
@@ -9,6 +9,11 @@ import {isObject}from'@mongez/supportive-is';import dayjs from'dayjs';import'@mo
9
9
  * If set to false and value is null, it will be returned as undefined
10
10
  */
11
11
  isNullable = false;
12
+ /**
13
+ * Whether this field is an array
14
+ * When true, transform() maps over each element using the base type
15
+ */
16
+ isArrayField = false;
12
17
  /**
13
18
  * Default value
14
19
  */
@@ -45,6 +50,30 @@ import {isObject}from'@mongez/supportive-is';import dayjs from'dayjs';import'@mo
45
50
  this.type = type;
46
51
  //
47
52
  }
53
+ /**
54
+ * Parse a cast type string (including suffixes) into a configured builder.
55
+ * Suffix order: [] before ? (e.g. "string[]?")
56
+ * Parsing strips right-to-left: ? first, then [].
57
+ */
58
+ static fromCastType(castType) {
59
+ let baseType = castType;
60
+ let nullable = false;
61
+ let isArray = false;
62
+ if (baseType.endsWith("?")) {
63
+ nullable = true;
64
+ baseType = baseType.slice(0, -1);
65
+ }
66
+ if (baseType.endsWith("[]")) {
67
+ isArray = true;
68
+ baseType = baseType.slice(0, -2);
69
+ }
70
+ const builder = new ResourceFieldBuilder(baseType);
71
+ if (nullable)
72
+ builder.nullable();
73
+ if (isArray)
74
+ builder.array();
75
+ return builder;
76
+ }
48
77
  /**
49
78
  * Set input key
50
79
  * Will be used in transformation if provided
@@ -67,6 +96,14 @@ import {isObject}from'@mongez/supportive-is';import dayjs from'dayjs';import'@mo
67
96
  this.isNullable = true;
68
97
  return this;
69
98
  }
99
+ /**
100
+ * Mark this field as an array
101
+ * transform() will map over each element using the base type
102
+ */
103
+ array() {
104
+ this.isArrayField = true;
105
+ return this;
106
+ }
70
107
  /**
71
108
  * Get input key
72
109
  */
@@ -96,27 +133,47 @@ import {isObject}from'@mongez/supportive-is';import dayjs from'dayjs';import'@mo
96
133
  return this;
97
134
  }
98
135
  /**
99
- * Transform the value
136
+ * Transform the value.
137
+ * When isArrayField is true, maps over each element using transformSingleValue.
100
138
  */
101
139
  transform(value, locale) {
102
- if (value === undefined)
103
- return this.defaultValue;
104
- if (this.condition && !this.condition())
105
- return this.defaultValue;
106
- if (value === null) {
140
+ if (this.isArrayField) {
141
+ if (!Array.isArray(value)) {
142
+ return this.isNullable ? null : [];
143
+ }
144
+ return value
145
+ .map((item) => this.transformSingleValue(item, locale))
146
+ .filter((v) => v !== undefined);
147
+ }
148
+ return this.transformSingleValue(value, locale);
149
+ }
150
+ /**
151
+ * Transform a single value according to the base type.
152
+ */
153
+ transformSingleValue(value, locale) {
154
+ if (value === undefined || value === null) {
155
+ return this.isNullable ? null : this.defaultValue;
156
+ }
157
+ if (this.condition && !this.condition()) {
107
158
  return this.isNullable ? null : this.defaultValue;
108
159
  }
109
160
  switch (this.type) {
110
161
  case "string":
111
162
  return String(value);
112
- case "number":
113
- return Number(value);
163
+ case "number": {
164
+ const num = Number(value);
165
+ return isNaN(num) ? (this.isNullable ? null : undefined) : num;
166
+ }
114
167
  case "boolean":
115
168
  return Boolean(value);
116
- case "float":
117
- return parseFloat(value);
118
- case "int":
119
- return parseInt(value);
169
+ case "float": {
170
+ const float = parseFloat(value);
171
+ return isNaN(float) ? (this.isNullable ? null : undefined) : float;
172
+ }
173
+ case "int": {
174
+ const int = parseInt(value);
175
+ return isNaN(int) ? (this.isNullable ? null : undefined) : int;
176
+ }
120
177
  case "date":
121
178
  return this.transformDate(value, locale);
122
179
  case "localized":
@@ -128,9 +185,9 @@ import {isObject}from'@mongez/supportive-is';import dayjs from'dayjs';import'@mo
128
185
  case "storageUrl":
129
186
  return storage.url(value);
130
187
  case "object":
131
- return isObject(value) && !Array.isArray(value) ? value : undefined;
188
+ return isObject(value) && !Array.isArray(value) ? value : (this.isNullable ? null : undefined);
132
189
  case "array":
133
- return Array.isArray(value) ? value : undefined;
190
+ return Array.isArray(value) ? value : (this.isNullable ? null : undefined);
134
191
  }
135
192
  }
136
193
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"resource-field-builder.js","sources":["../../src/resource/resource-field-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"odAOa,oBAAoB,CAAA;AAiDO,IAAA,IAAA,CAAA;AAhDtC;;AAEG;AACO,IAAA,UAAU,CAAW;AAE/B;;;AAGG;IACO,UAAU,GAAG,KAAK,CAAC;AAE7B;;AAEG;AACO,IAAA,YAAY,CAAW;AAEjC;;AAEG;IACO,UAAU,GAAG,uBAAuB,CAAC;AAE/C;;AAEG;AACO,IAAA,aAAa,CAAU;AAEjC;;AAEG;AACO,IAAA,SAAS,CAAiB;AAEpC;;;;AAIG;AACO,IAAA,gBAAgB,GAA0C;AAClE,QAAA,MAAM,EAAE,IAAI;AACZ,QAAA,SAAS,EAAE,IAAI;AACf,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,MAAM,EAAE,KAAK;AACb,QAAA,SAAS,EAAE,IAAI;KAChB,CAAC;AAEF;;AAEG;AACH,IAAA,WAAA,CAAsC,IAAiC,EAAA;QAAjC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAA6B;;KAEtE;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,GAAW,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC;AAEzB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,IAAI,CAAC,SAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC3B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,QAAQ,GAAA;AACb,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;AACvB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,WAAW,GAAA;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC;KAC3B;AAED;;AAEG;AACI,IAAA,OAAO,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAE1B,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;AACI,IAAA,MAAM,CAAC,MAAc,EAAA;AAC1B,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AAEzB,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;;AAGG;AACI,IAAA,WAAW,CAAC,OAA8C,EAAA;AAC/D,QAAA,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC;AAEhC,QAAA,OAAO,IAAI,CAAC;KACb;AAED;;AAEG;IACI,SAAS,CAAC,KAAU,EAAE,MAAe,EAAA;QAC1C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAElD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAElE,IAAI,KAAK,KAAK,IAAI,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,UAAU,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AACnD,SAAA;QAED,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,aAAa,CAAC,KAAsB,EAAE,MAAM,CAAC,CAAC;AAC5D,YAAA,KAAK,WAAW;gBACd,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAA0B,EAAE,MAAM,CAAC,CAAC;AACrE,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,GAAG,CAAC,KAAe,CAAC,CAAC;AAC9B,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,UAAU,CAAC,KAAe,CAAC,CAAC;AACrC,YAAA,KAAK,YAAY;AACf,gBAAA,OAAO,OAAO,CAAC,GAAG,CAAC,KAAe,CAAC,CAAC;AACtC,YAAA,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;AACtE,YAAA,KAAK,OAAO;AACV,gBAAA,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,SAAS,CAAC;AACnD,SAAA;KACF;AAED;;AAEG;IACO,aAAa,CAAC,KAAoB,EAAE,MAAe,EAAA;AAC3D,QAAA,IAAI,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE;AAC7C,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE;gBACtC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;AACzC,gBAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AAC/B,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,WAAW,EAAE;AACzC,gBAAA,OAAQ,KAAa,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;AACxC,aAAA;AAED,YAAA,IAAI,IAAI,CAAC,gBAAgB,KAAK,QAAQ,EAAE;gBACtC,IAAI,CAAC,MAAM,EAAE;oBACX,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC7C,iBAAA;AAED,gBAAA,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAC5D,aAAA;AACF,SAAA;;QAGD,MAAM,MAAM,GAKR,EAAE,CAAC;AAEP,QAAA,IAAI,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;AAE/B,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAChC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACnC,YAAA,MAAM,CAAC,SAAS,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;AACnC,YAAA,MAAM,CAAC,SAAS,GAAI,WAAmB,CAAC,OAAO,EAAE,CAAC;AACnD,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;YAChC,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACrD,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;AAED;;AAEG;IACO,kBAAkB,CAAC,KAAiC,EAAE,MAAe,EAAA;AAC7E,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;QAED,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,KAAK,CAAC;AACjC,SAAA;AAED,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,UAAU,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC;KAChE;AACF"}
1
+ {"version":3,"file":"resource-field-builder.js","sources":["../../src/resource/resource-field-builder.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}