@nhtio/lucid-resourceful 0.1.0-master-1570171e → 0.1.0-master-3ec631a4

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 (47) hide show
  1. package/{definitions-DgI468dW.cjs → data_type_schemas-BqeljaQB.cjs} +21 -177
  2. package/data_type_schemas-BqeljaQB.cjs.map +1 -0
  3. package/data_type_schemas-Cpco9Zba.js +225 -0
  4. package/data_type_schemas-Cpco9Zba.js.map +1 -0
  5. package/{decorator_utils-U_rZo8tv.cjs → decorator_utils-DSvYjLYD.cjs} +204 -60
  6. package/decorator_utils-DSvYjLYD.cjs.map +1 -0
  7. package/{decorator_utils-YSb1EGJ6.js → decorator_utils-gyymixlk.js} +207 -65
  8. package/decorator_utils-gyymixlk.js.map +1 -0
  9. package/definitions-DcB6B_4d.js +174 -0
  10. package/definitions-DcB6B_4d.js.map +1 -0
  11. package/definitions-DjQRkCeH.cjs +173 -0
  12. package/definitions-DjQRkCeH.cjs.map +1 -0
  13. package/definitions.cjs +1 -1
  14. package/definitions.mjs +11 -11
  15. package/{errors-B1rr67uM.js → errors-C-x5_jRE.js} +162 -27
  16. package/errors-C-x5_jRE.js.map +1 -0
  17. package/{errors-D8jb9VxY.cjs → errors-CNwuNhBV.cjs} +138 -5
  18. package/errors-CNwuNhBV.cjs.map +1 -0
  19. package/errors.cjs +5 -1
  20. package/errors.cjs.map +1 -1
  21. package/errors.d.ts +24 -2
  22. package/errors.mjs +19 -15
  23. package/index.cjs +1471 -771
  24. package/index.cjs.map +1 -1
  25. package/index.mjs +1716 -1016
  26. package/index.mjs.map +1 -1
  27. package/joi.cjs +1854 -3368
  28. package/joi.cjs.map +1 -1
  29. package/joi.mjs +1857 -3371
  30. package/joi.mjs.map +1 -1
  31. package/package.json +1 -1
  32. package/private/decorators.d.ts +8 -8
  33. package/private/lucene_to_lucid_translator.d.ts +21 -175
  34. package/private/mixin.d.ts +68 -5
  35. package/private/services/open_api_schema_service.d.ts +111 -0
  36. package/private/type_guards.d.ts +62 -0
  37. package/private/types.d.ts +1 -1
  38. package/private/utils.d.ts +24 -0
  39. package/utils.cjs +1 -1
  40. package/utils.mjs +2 -2
  41. package/decorator_utils-U_rZo8tv.cjs.map +0 -1
  42. package/decorator_utils-YSb1EGJ6.js.map +0 -1
  43. package/definitions-B88XBTUF.js +0 -381
  44. package/definitions-B88XBTUF.js.map +0 -1
  45. package/definitions-DgI468dW.cjs.map +0 -1
  46. package/errors-B1rr67uM.js.map +0 -1
  47. package/errors-D8jb9VxY.cjs.map +0 -1
@@ -15,6 +15,71 @@ import "path";
15
15
  import "fs/promises";
16
16
  import { randomUUID, randomBytes } from "crypto";
17
17
  import "buffer";
18
+ var CRUDOperationsEnum = /* @__PURE__ */ ((CRUDOperationsEnum2) => {
19
+ CRUDOperationsEnum2["CREATE"] = "create";
20
+ CRUDOperationsEnum2["READ"] = "read";
21
+ CRUDOperationsEnum2["LIST"] = "list";
22
+ CRUDOperationsEnum2["UPDATE"] = "update";
23
+ CRUDOperationsEnum2["DELETE"] = "delete";
24
+ return CRUDOperationsEnum2;
25
+ })(CRUDOperationsEnum || {});
26
+ var ACLOperationsEnum = /* @__PURE__ */ ((ACLOperationsEnum2) => {
27
+ ACLOperationsEnum2["WRITE"] = "write";
28
+ ACLOperationsEnum2["READ"] = "read";
29
+ return ACLOperationsEnum2;
30
+ })(ACLOperationsEnum || {});
31
+ const operationCRUDToACL = (operation) => {
32
+ if (operation === CRUDOperationsEnum.READ || operation === CRUDOperationsEnum.LIST) {
33
+ return ACLOperationsEnum.READ;
34
+ }
35
+ if (operation === CRUDOperationsEnum.CREATE || operation === CRUDOperationsEnum.UPDATE || operation === CRUDOperationsEnum.DELETE) {
36
+ return ACLOperationsEnum.WRITE;
37
+ }
38
+ };
39
+ const isString = (value) => {
40
+ return typeof value === "string";
41
+ };
42
+ const isObject = (value) => {
43
+ return value !== null && typeof value === "object" && !Array.isArray(value);
44
+ };
45
+ const prepareFields = (fields, primaryKey) => {
46
+ const defaultValue = [primaryKey];
47
+ if (Array.isArray(fields)) {
48
+ return fields.length ? fields : defaultValue;
49
+ }
50
+ if (isString(fields)) {
51
+ return fields.length ? [fields] : defaultValue;
52
+ }
53
+ return defaultValue;
54
+ };
55
+ const stripUndefinedValuesFromObject = (obj) => {
56
+ return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value !== void 0));
57
+ };
58
+ const formatSyntaxError = (source, line, column, offset) => {
59
+ const lines = source.split("\n");
60
+ const errorLine = lines[line - 1];
61
+ if (!errorLine) {
62
+ return `Error at line ${line}, column ${column} (offset ${offset})
63
+ Line not found in source.`;
64
+ }
65
+ const indicator = " ".repeat(Math.max(0, column - 1)) + "^";
66
+ let result = `Syntax Error at line ${line}, column ${column} (offset ${offset}):
67
+
68
+ `;
69
+ if (line > 1 && lines[line - 2]) {
70
+ result += `${(line - 1).toString().padStart(3)} | ${lines[line - 2]}
71
+ `;
72
+ }
73
+ result += `${line.toString().padStart(3)} | ${errorLine}
74
+ `;
75
+ result += `${" ".repeat(3)} | ${indicator}
76
+ `;
77
+ if (line < lines.length && lines[line]) {
78
+ result += `${(line + 1).toString().padStart(3)} | ${lines[line]}
79
+ `;
80
+ }
81
+ return result;
82
+ };
18
83
  var Exception = class extends Error {
19
84
  constructor(message, options) {
20
85
  super(message, options);
@@ -2717,18 +2782,18 @@ class E_INVALID_RESOURCEFUL_MIXIN_OPTIONS extends Exception {
2717
2782
  __publicField(E_INVALID_RESOURCEFUL_MIXIN_OPTIONS, "status", 500);
2718
2783
  __publicField(E_INVALID_RESOURCEFUL_MIXIN_OPTIONS, "code", "E_INVALID_RESOURCEFUL_MIXIN_OPTIONS");
2719
2784
  const E_INVALID_PREPARED_VALUE = createError(
2720
- "E_INVALID_PREPARED_VALUE",
2721
2785
  'The value for "%s" is not a valid %s',
2786
+ "E_INVALID_PREPARED_VALUE",
2722
2787
  422
2723
2788
  );
2724
2789
  const E_INVALID_CONSUMED_VALUE = createError(
2790
+ 'The value for "%s" (%O) could not be consumed as a valid %s',
2725
2791
  "E_INVALID_CONSUMED_VALUE",
2726
- 'The value for "%s" could not be consumed as a valid %s',
2727
2792
  500
2728
2793
  );
2729
2794
  const E_UNCASTABLE = createError(
2730
- "E_UNCASTABLE",
2731
2795
  "The value could not be cast to a valid %s",
2796
+ "E_UNCASTABLE",
2732
2797
  500
2733
2798
  );
2734
2799
  class E_INVALID_RESOURCEFUL_DECORATOR_OPTIONS extends Exception {
@@ -2821,7 +2886,7 @@ class E_UNEXPECTED_COLUMN_IN_QUERY extends Exception {
2821
2886
  __publicField(E_UNEXPECTED_COLUMN_IN_QUERY, "status", 400);
2822
2887
  __publicField(E_UNEXPECTED_COLUMN_IN_QUERY, "code", "E_UNEXPECTED_COLUMN_IN_QUERY");
2823
2888
  class E_LUCENE_SYNTAX_EXCEPTION extends Exception {
2824
- constructor(original) {
2889
+ constructor(query, original) {
2825
2890
  const msg = `${original.message} at line ${original.line}, column ${original.column}, offset ${original.offset}`;
2826
2891
  super(msg, {
2827
2892
  code: "E_LUCENE_SYNTAX_EXCEPTION",
@@ -2846,6 +2911,12 @@ class E_LUCENE_SYNTAX_EXCEPTION extends Exception {
2846
2911
  writable: false,
2847
2912
  configurable: false
2848
2913
  });
2914
+ Object.defineProperty(this, "details", {
2915
+ value: formatSyntaxError(query, original.line, original.column, original.offset),
2916
+ enumerable: true,
2917
+ writable: false,
2918
+ configurable: false
2919
+ });
2849
2920
  }
2850
2921
  }
2851
2922
  __publicField(E_LUCENE_SYNTAX_EXCEPTION, "status", 422);
@@ -2952,8 +3023,58 @@ class E_FORBIDDEN_PAYLOAD_EXCEPTION extends Exception {
2952
3023
  }
2953
3024
  __publicField(E_FORBIDDEN_PAYLOAD_EXCEPTION, "status", 403);
2954
3025
  __publicField(E_FORBIDDEN_PAYLOAD_EXCEPTION, "code", "E_FORBIDDEN_PAYLOAD_EXCEPTION");
3026
+ class E_INVALID_RELATIONSHIP_EXCEPTION extends Exception {
3027
+ constructor(message) {
3028
+ super(message, {
3029
+ code: "E_INVALID_RELATIONSHIP_EXCEPTION",
3030
+ status: 400
3031
+ });
3032
+ }
3033
+ }
3034
+ __publicField(E_INVALID_RELATIONSHIP_EXCEPTION, "status", 400);
3035
+ __publicField(E_INVALID_RELATIONSHIP_EXCEPTION, "code", "E_INVALID_RELATIONSHIP_EXCEPTION");
3036
+ class E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION extends Exception {
3037
+ constructor(reason) {
3038
+ super(reason.message, {
3039
+ code: "E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION",
3040
+ status: 422,
3041
+ cause: reason.cause
3042
+ });
3043
+ Object.defineProperty(this, "details", {
3044
+ value: reason == null ? void 0 : reason.details,
3045
+ enumerable: true,
3046
+ writable: false,
3047
+ configurable: false
3048
+ });
3049
+ }
3050
+ }
3051
+ __publicField(E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION, "status", 422);
3052
+ __publicField(E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION, "code", "E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION");
3053
+ class E_LUCENE_REGEX_NOT_SUPPORTED extends Exception {
3054
+ constructor() {
3055
+ const msg = `Lucene regex queries are not supported by this database.`;
3056
+ super(msg, {
3057
+ code: "E_LUCENE_REGEX_NOT_SUPPORTED",
3058
+ status: 501
3059
+ });
3060
+ }
3061
+ }
3062
+ __publicField(E_LUCENE_REGEX_NOT_SUPPORTED, "status", 501);
3063
+ __publicField(E_LUCENE_REGEX_NOT_SUPPORTED, "code", "E_LUCENE_REGEX_NOT_SUPPORTED");
3064
+ class E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION extends Exception {
3065
+ constructor() {
3066
+ const msg = `An unknown error occurred during bulk update search operation.`;
3067
+ super(msg, {
3068
+ code: "E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION",
3069
+ status: 500
3070
+ });
3071
+ }
3072
+ }
3073
+ __publicField(E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION, "status", 500);
3074
+ __publicField(E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION, "code", "E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION");
2955
3075
  const errors = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2956
3076
  __proto__: null,
3077
+ E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION,
2957
3078
  E_FORBIDDEN,
2958
3079
  E_FORBIDDEN_PAYLOAD_EXCEPTION,
2959
3080
  E_INVALID_COLUMN_ACCESS,
@@ -2961,11 +3082,14 @@ const errors = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
2961
3082
  E_INVALID_LUCENE_QUERY,
2962
3083
  E_INVALID_PAYLOAD_EXCEPTION,
2963
3084
  E_INVALID_PREPARED_VALUE,
3085
+ E_INVALID_RELATIONSHIP_EXCEPTION,
2964
3086
  E_INVALID_RESOURCEFUL_DATA_TYPE_OPTIONS,
2965
3087
  E_INVALID_RESOURCEFUL_DECORATOR_OPTIONS,
2966
3088
  E_INVALID_RESOURCEFUL_MIXIN_OPTIONS,
2967
3089
  E_INVALID_RESOUREFUL_INDEX_REQUEST_EXCEPTION,
3090
+ E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION,
2968
3091
  E_LUCENE_INVALID_TYPE,
3092
+ E_LUCENE_REGEX_NOT_SUPPORTED,
2969
3093
  E_LUCENE_SYNTAX_EXCEPTION,
2970
3094
  E_LUCENE_UNEXPECTED_EXCEPTION,
2971
3095
  E_MISSING_PRIMARY_KEY_EXCEPTION,
@@ -2974,31 +3098,42 @@ const errors = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProper
2974
3098
  E_UNEXPECTED_COLUMN_IN_QUERY
2975
3099
  }, Symbol.toStringTag, { value: "Module" }));
2976
3100
  export {
3101
+ ACLOperationsEnum as A,
3102
+ commonjsGlobal as B,
3103
+ CRUDOperationsEnum as C,
3104
+ index_default as D,
2977
3105
  E_INVALID_RESOURCEFUL_DATA_TYPE_OPTIONS as E,
3106
+ defineStaticProperty as F,
3107
+ lodash as G,
3108
+ E_INVALID_RESOURCEFUL_DECORATOR_OPTIONS as H,
3109
+ errors as I,
3110
+ E_INVALID_LUCENE_QUERY as J,
3111
+ E_UNEXPECTED_COLUMN_IN_QUERY as K,
2978
3112
  E_UNCASTABLE as a,
2979
3113
  E_INVALID_PREPARED_VALUE as b,
2980
3114
  E_INVALID_CONSUMED_VALUE as c,
2981
- E_LUCENE_SYNTAX_EXCEPTION as d,
2982
- E_LUCENE_UNEXPECTED_EXCEPTION as e,
2983
- E_LUCENE_INVALID_TYPE as f,
2984
- E_INVALID_RESOURCEFUL_MIXIN_OPTIONS as g,
2985
- E_MISSING_PRIMARY_KEY_EXCEPTION as h,
2986
- E_FORBIDDEN as i,
2987
- E_INVALID_COLUMN_ACCESS as j,
2988
- E_INVALID_RESOUREFUL_INDEX_REQUEST_EXCEPTION as k,
2989
- E_RECORD_NOT_FOUND_EXCEPTION as l,
2990
- E_INVALID_PAYLOAD_EXCEPTION as m,
2991
- E_FORBIDDEN_PAYLOAD_EXCEPTION as n,
2992
- createError as o,
2993
- Exception as p,
2994
- getDefaultExportFromCjs as q,
2995
- commonjsGlobal as r,
2996
- index_default as s,
2997
- defineStaticProperty as t,
2998
- lodash as u,
2999
- E_INVALID_RESOURCEFUL_DECORATOR_OPTIONS as v,
3000
- errors as w,
3001
- E_INVALID_LUCENE_QUERY as x,
3002
- E_UNEXPECTED_COLUMN_IN_QUERY as y
3115
+ E_LUCENE_INVALID_TYPE as d,
3116
+ E_LUCENE_REGEX_NOT_SUPPORTED as e,
3117
+ E_LUCENE_SYNTAX_EXCEPTION as f,
3118
+ E_LUCENE_UNEXPECTED_EXCEPTION as g,
3119
+ isObject as h,
3120
+ isString as i,
3121
+ E_INVALID_RESOURCEFUL_MIXIN_OPTIONS as j,
3122
+ E_MISSING_PRIMARY_KEY_EXCEPTION as k,
3123
+ E_FORBIDDEN as l,
3124
+ E_INVALID_COLUMN_ACCESS as m,
3125
+ E_INVALID_RESOUREFUL_INDEX_REQUEST_EXCEPTION as n,
3126
+ operationCRUDToACL as o,
3127
+ prepareFields as p,
3128
+ E_RECORD_NOT_FOUND_EXCEPTION as q,
3129
+ E_INVALID_RELATIONSHIP_EXCEPTION as r,
3130
+ stripUndefinedValuesFromObject as s,
3131
+ E_INVALID_RESOUREFUL_READ_RELATIONSHIP_REQUEST_EXCEPTION as t,
3132
+ E_INVALID_PAYLOAD_EXCEPTION as u,
3133
+ E_FORBIDDEN_PAYLOAD_EXCEPTION as v,
3134
+ E_BULK_UPDATE_SEARCH_UNKNOWN_EXCEPTION as w,
3135
+ createError as x,
3136
+ Exception as y,
3137
+ getDefaultExportFromCjs as z
3003
3138
  };
3004
- //# sourceMappingURL=errors-B1rr67uM.js.map
3139
+ //# sourceMappingURL=errors-C-x5_jRE.js.map