@schorts/shared-kernel 4.2.1 → 4.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/dist/cjs/value-objects/array-value.js +2 -0
  2. package/dist/cjs/value-objects/array-value.js.map +1 -1
  3. package/dist/cjs/value-objects/index.js +3 -1
  4. package/dist/cjs/value-objects/index.js.map +1 -1
  5. package/dist/cjs/value-objects/object-value.js +2 -0
  6. package/dist/cjs/value-objects/object-value.js.map +1 -1
  7. package/dist/cjs/value-objects/url-value.js +23 -0
  8. package/dist/cjs/value-objects/url-value.js.map +1 -0
  9. package/dist/esm/value-objects/array-value.js +2 -0
  10. package/dist/esm/value-objects/array-value.js.map +1 -1
  11. package/dist/esm/value-objects/index.js +3 -1
  12. package/dist/esm/value-objects/index.js.map +1 -1
  13. package/dist/esm/value-objects/object-value.js +2 -0
  14. package/dist/esm/value-objects/object-value.js.map +1 -1
  15. package/dist/esm/value-objects/url-value.js +23 -0
  16. package/dist/esm/value-objects/url-value.js.map +1 -0
  17. package/dist/types/value-objects/array-value.d.ts +2 -0
  18. package/dist/types/value-objects/array-value.d.ts.map +1 -1
  19. package/dist/types/value-objects/index.d.ts +1 -0
  20. package/dist/types/value-objects/index.d.ts.map +1 -1
  21. package/dist/types/value-objects/object-value.d.ts +2 -0
  22. package/dist/types/value-objects/object-value.d.ts.map +1 -1
  23. package/dist/types/value-objects/url-value.d.ts +11 -0
  24. package/dist/types/value-objects/url-value.d.ts.map +1 -0
  25. package/package.json +11 -3
  26. package/.idx/airules.md +0 -186
  27. package/.idx/dev.nix +0 -54
  28. package/.vscode/settings.json +0 -7
  29. package/CHANGELOG +0 -363
  30. package/__tests__/auth/auth-provider.test.ts +0 -50
  31. package/__tests__/auth/require-auth.decorator.test.ts +0 -88
  32. package/__tests__/criteria/criteria.test.ts +0 -159
  33. package/__tests__/criteria/direction.test.ts +0 -11
  34. package/__tests__/criteria/filter-criterion.test.ts +0 -15
  35. package/__tests__/criteria/operator.test.ts +0 -22
  36. package/__tests__/criteria/order.test.ts +0 -14
  37. package/__tests__/dao/dao.test.ts +0 -126
  38. package/__tests__/domain-events/domain-event-primitives.test.ts +0 -34
  39. package/__tests__/domain-events/domain-event.test.ts +0 -50
  40. package/__tests__/entities/entity-registry.test.ts +0 -71
  41. package/__tests__/entities/entity.test.ts +0 -114
  42. package/__tests__/entities/register-entity.decorator.test.ts +0 -54
  43. package/__tests__/formatters/pascal-camel-to-snake.test.ts +0 -19
  44. package/__tests__/http/fetch-http-provider.test.ts +0 -155
  45. package/__tests__/http/http-provider.test.ts +0 -55
  46. package/__tests__/json-api/json-api-connector.test.ts +0 -78
  47. package/__tests__/json-api/json-api-list.test.ts +0 -24
  48. package/__tests__/json-api/json-api-single.test.ts +0 -24
  49. package/__tests__/json-api/url-criteria-builder.test.ts +0 -74
  50. package/__tests__/messages/message.test.ts +0 -16
  51. package/__tests__/models/base-model.test.ts +0 -10
  52. package/__tests__/state-manager/state-manager.test.ts +0 -101
  53. package/__tests__/unit-of-work/unit-of-work.test.ts +0 -47
  54. package/__tests__/utils/url/url-with-params-builder.test.ts +0 -39
  55. package/__tests__/value-objects/coordinates-value.test.ts +0 -68
  56. package/__tests__/value-objects/email-value.test.ts +0 -43
  57. package/__tests__/value-objects/enum-value.test.ts +0 -51
  58. package/__tests__/value-objects/integer-value.test.ts +0 -115
  59. package/__tests__/value-objects/phone-value.test.ts +0 -82
  60. package/__tests__/value-objects/slug-value.test.ts +0 -43
  61. package/__tests__/value-objects/string-value.test.ts +0 -121
  62. package/__tests__/value-objects/uuid-value.test.ts +0 -67
  63. package/__tests__/value-objects/value-object.test.ts +0 -25
  64. package/jest.config.js +0 -25
  65. package/src/abac/index.ts +0 -1
  66. package/src/abac/predicate.ts +0 -3
  67. package/src/auth/auth-provider.ts +0 -11
  68. package/src/auth/exceptions/index.ts +0 -2
  69. package/src/auth/exceptions/not-authenticated.ts +0 -11
  70. package/src/auth/exceptions/require-auth-not-implemented-correctly.ts +0 -11
  71. package/src/auth/index.ts +0 -3
  72. package/src/auth/require-auth.decorator.ts +0 -42
  73. package/src/converters/index.ts +0 -1
  74. package/src/converters/remote-file-to-base64.ts +0 -19
  75. package/src/criteria/criteria.ts +0 -46
  76. package/src/criteria/direction.ts +0 -1
  77. package/src/criteria/exceptions/index.ts +0 -2
  78. package/src/criteria/exceptions/limit-not-valid.ts +0 -11
  79. package/src/criteria/exceptions/offset-not-valid.ts +0 -11
  80. package/src/criteria/index.ts +0 -5
  81. package/src/criteria/operator.ts +0 -12
  82. package/src/criteria/order.ts +0 -4
  83. package/src/dao/dao.ts +0 -16
  84. package/src/dao/index.ts +0 -1
  85. package/src/domain-events/domain-event-primitives.ts +0 -10
  86. package/src/domain-events/domain-event-registry.ts +0 -40
  87. package/src/domain-events/domain-event.ts +0 -29
  88. package/src/domain-events/exceptions/domain-event-not-registered.ts +0 -11
  89. package/src/domain-events/exceptions/index.ts +0 -1
  90. package/src/domain-events/index.ts +0 -4
  91. package/src/entities/entity-registry.ts +0 -30
  92. package/src/entities/entity.ts +0 -25
  93. package/src/entities/exceptions/entity-not-registered.ts +0 -11
  94. package/src/entities/exceptions/index.ts +0 -1
  95. package/src/entities/index.ts +0 -4
  96. package/src/entities/register-entity.decorator.ts +0 -16
  97. package/src/event-bus/event-store.ts +0 -9
  98. package/src/event-bus/event-subscriber.ts +0 -5
  99. package/src/event-bus/in-memory/async-in-memory-event-bus.ts +0 -67
  100. package/src/event-bus/in-memory/in-memory-event-store.ts +0 -28
  101. package/src/event-bus/in-memory/index.ts +0 -2
  102. package/src/event-bus/index.ts +0 -3
  103. package/src/formatters/index.ts +0 -1
  104. package/src/formatters/pascal-camel-to-snake.ts +0 -8
  105. package/src/http/exceptions/http-exception.ts +0 -8
  106. package/src/http/exceptions/index.ts +0 -1
  107. package/src/http/fetch-http-provider.ts +0 -151
  108. package/src/http/http-interceptor.ts +0 -3
  109. package/src/http/http-provider.ts +0 -7
  110. package/src/http/index.ts +0 -5
  111. package/src/i18n/index.ts +0 -2
  112. package/src/i18n/shared-kernel-translation-keys.ts +0 -19
  113. package/src/i18n/translation-resolver.ts +0 -3
  114. package/src/index.ts +0 -21
  115. package/src/json-api/exceptions/index.ts +0 -1
  116. package/src/json-api/exceptions/json-api-errors.ts +0 -17
  117. package/src/json-api/index.ts +0 -5
  118. package/src/json-api/json-api-connector.ts +0 -97
  119. package/src/json-api/json-api-list.ts +0 -13
  120. package/src/json-api/json-api-single.ts +0 -13
  121. package/src/json-api/url-criteria-builder.ts +0 -49
  122. package/src/messages/index.ts +0 -1
  123. package/src/messages/message.ts +0 -3
  124. package/src/models/base-model.ts +0 -3
  125. package/src/models/index.ts +0 -1
  126. package/src/pub-sub/index.ts +0 -2
  127. package/src/pub-sub/publisher.ts +0 -3
  128. package/src/pub-sub/subscription.ts +0 -6
  129. package/src/rbac/base-resource.ts +0 -3
  130. package/src/rbac/exceptions/index.ts +0 -1
  131. package/src/rbac/exceptions/not-authorized.ts +0 -1
  132. package/src/rbac/index.ts +0 -5
  133. package/src/rbac/permission.ts +0 -4
  134. package/src/rbac/rbac-policy.ts +0 -41
  135. package/src/result/index.ts +0 -1
  136. package/src/result/result.ts +0 -35
  137. package/src/state-manager/in-memory-state-manager.ts +0 -22
  138. package/src/state-manager/index.ts +0 -3
  139. package/src/state-manager/session-storage-state-manager.ts +0 -47
  140. package/src/state-manager/state-manager.ts +0 -28
  141. package/src/telemetry/console-telemetry.ts +0 -27
  142. package/src/telemetry/index.ts +0 -2
  143. package/src/telemetry/telemetry.ts +0 -5
  144. package/src/unit-of-work/index.ts +0 -1
  145. package/src/unit-of-work/unit-of-work.ts +0 -5
  146. package/src/utils/index.ts +0 -2
  147. package/src/utils/url/index.ts +0 -1
  148. package/src/utils/url/url-with-params-builder.ts +0 -19
  149. package/src/utils/value-objects/index.ts +0 -1
  150. package/src/utils/value-objects/rule.ts +0 -3
  151. package/src/value-objects/array-value.ts +0 -92
  152. package/src/value-objects/boolean-value.ts +0 -23
  153. package/src/value-objects/coordinates-value.ts +0 -50
  154. package/src/value-objects/date-value.ts +0 -36
  155. package/src/value-objects/email-value.ts +0 -25
  156. package/src/value-objects/enum-value.ts +0 -27
  157. package/src/value-objects/exceptions/index.ts +0 -2
  158. package/src/value-objects/exceptions/value-not-valid.ts +0 -3
  159. package/src/value-objects/exceptions/values-not-valid.ts +0 -11
  160. package/src/value-objects/float-valuet.ts +0 -39
  161. package/src/value-objects/index.ts +0 -17
  162. package/src/value-objects/integer-value.ts +0 -29
  163. package/src/value-objects/object-value.ts +0 -84
  164. package/src/value-objects/phone-value.ts +0 -53
  165. package/src/value-objects/slug-value.ts +0 -25
  166. package/src/value-objects/string-value.ts +0 -27
  167. package/src/value-objects/uuid-value.ts +0 -34
  168. package/src/value-objects/value-object.ts +0 -7
  169. package/tsconfig.cjs.json +0 -13
  170. package/tsconfig.esm.json +0 -12
  171. package/tsconfig.json +0 -47
@@ -41,6 +41,8 @@ class ArrayValue {
41
41
  return typeof value === "number" && value <= rule.less_than_or_equal;
42
42
  if ("type" in rule)
43
43
  return typeof value === rule.type;
44
+ if ("enum" in rule)
45
+ return rule.enum.includes(value);
44
46
  if ("custom" in rule)
45
47
  return rule.custom(value);
46
48
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"array-value.js","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-value.js","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ObjectValue = exports.ArrayValue = exports.FloatValue = exports.DateValue = exports.BooleanValue = exports.CoordinatesValue = exports.IntegerValue = exports.SlugValue = exports.PhoneValue = exports.EmailValue = exports.EnumValue = exports.StringValue = exports.UUIDValue = void 0;
17
+ exports.URLValue = exports.ObjectValue = exports.ArrayValue = exports.FloatValue = exports.DateValue = exports.BooleanValue = exports.CoordinatesValue = exports.IntegerValue = exports.SlugValue = exports.PhoneValue = exports.EmailValue = exports.EnumValue = exports.StringValue = exports.UUIDValue = void 0;
18
18
  var uuid_value_1 = require("./uuid-value");
19
19
  Object.defineProperty(exports, "UUIDValue", { enumerable: true, get: function () { return uuid_value_1.UUIDValue; } });
20
20
  var string_value_1 = require("./string-value");
@@ -41,5 +41,7 @@ var array_value_1 = require("./array-value");
41
41
  Object.defineProperty(exports, "ArrayValue", { enumerable: true, get: function () { return array_value_1.ArrayValue; } });
42
42
  var object_value_1 = require("./object-value");
43
43
  Object.defineProperty(exports, "ObjectValue", { enumerable: true, get: function () { return object_value_1.ObjectValue; } });
44
+ var url_value_1 = require("./url-value");
45
+ Object.defineProperty(exports, "URLValue", { enumerable: true, get: function () { return url_value_1.URLValue; } });
44
46
  __exportStar(require("./exceptions"), exports);
45
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,+CAA6B"}
@@ -44,6 +44,8 @@ class ObjectValue {
44
44
  return typeof value === "number" && value <= rule.less_than_or_equal;
45
45
  if ("type" in rule)
46
46
  return typeof value === rule.type;
47
+ if ("enum" in rule)
48
+ return rule.enum.includes(value);
47
49
  if ("custom" in rule)
48
50
  return rule.custom(value);
49
51
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"object-value.js","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-value.js","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLValue = void 0;
4
+ class URLValue {
5
+ valueType = "URL";
6
+ value;
7
+ allowedHosts;
8
+ constructor(value, allowedHosts = []) {
9
+ this.value = value;
10
+ this.allowedHosts = allowedHosts;
11
+ }
12
+ get isValid() {
13
+ return this.allowedHosts.length === 0 || this.allowedHosts.includes(this.value.hostname);
14
+ }
15
+ equals(valueObject) {
16
+ return (valueObject instanceof URLValue &&
17
+ this.isValid &&
18
+ valueObject.isValid &&
19
+ this.value.href === valueObject.value.href);
20
+ }
21
+ }
22
+ exports.URLValue = URLValue;
23
+ //# sourceMappingURL=url-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-value.js","sourceRoot":"","sources":["../../../src/value-objects/url-value.ts"],"names":[],"mappings":";;;AAEA,MAAsB,QAAQ;IACnB,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,CAAM;IACX,YAAY,CAAgB;IAErC,YAAY,KAAU,EAAE,eAA8B,EAAE;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,OAAO,CACL,WAAW,YAAY,QAAQ;YAC/B,IAAI,CAAC,OAAO;YACZ,WAAW,CAAC,OAAO;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAC3C,CAAC;IACJ,CAAC;CAGF;AAxBD,4BAwBC"}
@@ -41,6 +41,8 @@ class ArrayValue {
41
41
  return typeof value === "number" && value <= rule.less_than_or_equal;
42
42
  if ("type" in rule)
43
43
  return typeof value === rule.type;
44
+ if ("enum" in rule)
45
+ return rule.enum.includes(value);
44
46
  if ("custom" in rule)
45
47
  return rule.custom(value);
46
48
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"array-value.js","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"array-value.js","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.ObjectValue = exports.ArrayValue = exports.FloatValue = exports.DateValue = exports.BooleanValue = exports.CoordinatesValue = exports.IntegerValue = exports.SlugValue = exports.PhoneValue = exports.EmailValue = exports.EnumValue = exports.StringValue = exports.UUIDValue = void 0;
17
+ exports.URLValue = exports.ObjectValue = exports.ArrayValue = exports.FloatValue = exports.DateValue = exports.BooleanValue = exports.CoordinatesValue = exports.IntegerValue = exports.SlugValue = exports.PhoneValue = exports.EmailValue = exports.EnumValue = exports.StringValue = exports.UUIDValue = void 0;
18
18
  var uuid_value_1 = require("./uuid-value");
19
19
  Object.defineProperty(exports, "UUIDValue", { enumerable: true, get: function () { return uuid_value_1.UUIDValue; } });
20
20
  var string_value_1 = require("./string-value");
@@ -41,5 +41,7 @@ var array_value_1 = require("./array-value");
41
41
  Object.defineProperty(exports, "ArrayValue", { enumerable: true, get: function () { return array_value_1.ArrayValue; } });
42
42
  var object_value_1 = require("./object-value");
43
43
  Object.defineProperty(exports, "ObjectValue", { enumerable: true, get: function () { return object_value_1.ObjectValue; } });
44
+ var url_value_1 = require("./url-value");
45
+ Object.defineProperty(exports, "URLValue", { enumerable: true, get: function () { return url_value_1.URLValue; } });
44
46
  __exportStar(require("./exceptions"), exports);
45
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AAEpB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAEA,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,yDAAuD;AAA9C,qHAAA,gBAAgB,OAAA;AACzB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,2CAAyC;AAAhC,uGAAA,SAAS,OAAA;AAClB,+CAA4C;AAAnC,0GAAA,UAAU,OAAA;AACnB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yCAAuC;AAA9B,qGAAA,QAAQ,OAAA;AAEjB,+CAA6B"}
@@ -44,6 +44,8 @@ class ObjectValue {
44
44
  return typeof value === "number" && value <= rule.less_than_or_equal;
45
45
  if ("type" in rule)
46
46
  return typeof value === rule.type;
47
+ if ("enum" in rule)
48
+ return rule.enum.includes(value);
47
49
  if ("custom" in rule)
48
50
  return rule.custom(value);
49
51
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"object-value.js","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-value.js","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.URLValue = void 0;
4
+ class URLValue {
5
+ valueType = "URL";
6
+ value;
7
+ allowedHosts;
8
+ constructor(value, allowedHosts = []) {
9
+ this.value = value;
10
+ this.allowedHosts = allowedHosts;
11
+ }
12
+ get isValid() {
13
+ return this.allowedHosts.length === 0 || this.allowedHosts.includes(this.value.hostname);
14
+ }
15
+ equals(valueObject) {
16
+ return (valueObject instanceof URLValue &&
17
+ this.isValid &&
18
+ valueObject.isValid &&
19
+ this.value.href === valueObject.value.href);
20
+ }
21
+ }
22
+ exports.URLValue = URLValue;
23
+ //# sourceMappingURL=url-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-value.js","sourceRoot":"","sources":["../../../src/value-objects/url-value.ts"],"names":[],"mappings":";;;AAEA,MAAsB,QAAQ;IACnB,SAAS,GAAG,KAAK,CAAC;IAClB,KAAK,CAAM;IACX,YAAY,CAAgB;IAErC,YAAY,KAAU,EAAE,eAA8B,EAAE;QACtD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC3F,CAAC;IAED,MAAM,CAAC,WAAoB;QACzB,OAAO,CACL,WAAW,YAAY,QAAQ;YAC/B,IAAI,CAAC,OAAO;YACZ,WAAW,CAAC,OAAO;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC,IAAI,CAC3C,CAAC;IACJ,CAAC;CAGF;AAxBD,4BAwBC"}
@@ -12,6 +12,8 @@ export type ValidationRule<Type> = {
12
12
  less_than_or_equal: number;
13
13
  } | {
14
14
  type: "string" | "number" | "boolean";
15
+ } | {
16
+ enum: ReadonlyArray<Type>;
15
17
  } | {
16
18
  custom: (value: Type) => boolean;
17
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"array-value.d.ts","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,CAAC,IAAI,IAC3B;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAA;CAAE,CAAC;AAEzC,KAAK,YAAY,CAAC,IAAI,IAAI;KACvB,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,GAC7C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF,8BAAsB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAE,YAAW,WAAW;IACjE,QAAQ,CAAC,SAAS,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAGrC,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE;IAMrD,IAAI,OAAO,IAAI,OAAO,CAMrB;IAED,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAYpB,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,OAAO,CAAC,UAAU;CAcnB"}
1
+ {"version":3,"file":"array-value.d.ts","sourceRoot":"","sources":["../../../src/value-objects/array-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,CAAC,IAAI,IAC3B;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC,CAAA;CAAE,GAC7B;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAA;CAAE,CAAC;AAEzC,KAAK,YAAY,CAAC,IAAI,IAAI;KACvB,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,GAC7C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF,8BAAsB,UAAU,CAAC,IAAI,GAAG,GAAG,CAAE,YAAW,WAAW;IACjE,QAAQ,CAAC,SAAS,WAAW;IAC7B,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;IAC7D,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;gBAGrC,KAAK,EAAE,IAAI,EAAE,EACb,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE;IAMrD,IAAI,OAAO,IAAI,OAAO,CAMrB;IAED,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAapB,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,OAAO,CAAC,UAAU;CAcnB"}
@@ -12,5 +12,6 @@ export { DateValue } from "./date-value";
12
12
  export { FloatValue } from "./float-valuet";
13
13
  export { ArrayValue } from "./array-value";
14
14
  export { ObjectValue } from "./object-value";
15
+ export { URLValue } from "./url-value";
15
16
  export * from "./exceptions";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/value-objects/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,cAAc,cAAc,CAAC"}
@@ -12,6 +12,8 @@ export type ValidationRule<Type> = {
12
12
  less_than_or_equal: number;
13
13
  } | {
14
14
  type: "string" | "number" | "boolean";
15
+ } | {
16
+ enum: Array<string>;
15
17
  } | {
16
18
  custom: (value: Type) => boolean;
17
19
  };
@@ -1 +1 @@
1
- {"version":3,"file":"object-value.d.ts","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,CAAC,IAAI,IAC3B;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GACzC;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,YAAY,CAAC,IAAI,IAAI;KAC9B,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,GAC7C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF,8BAAsB,WAAW,CAAC,IAAI,GAAG,GAAG,CAAE,YAAW,WAAW;IAClE,QAAQ,CAAC,SAAS,YAAY;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;IAKnD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAYpB,OAAO,CAAC,UAAU;CAcnB"}
1
+ {"version":3,"file":"object-value.d.ts","sourceRoot":"","sources":["../../../src/value-objects/object-value.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAE9D,MAAM,MAAM,cAAc,CAAC,IAAI,IAC3B;IAAE,QAAQ,EAAE,IAAI,CAAA;CAAE,GAClB;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GACxB;IAAE,qBAAqB,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAA;CAAE,CAAC;AAEzC,MAAM,MAAM,YAAY,CAAC,IAAI,IAAI;KAC9B,GAAG,IAAI,MAAM,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,SAAS,GAC7C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAC3B,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC5B,CAAC;AAEF,8BAAsB,WAAW,CAAC,IAAI,GAAG,GAAG,CAAE,YAAW,WAAW;IAClE,QAAQ,CAAC,SAAS,YAAY;IAC9B,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;gBAE5B,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC;IAKnD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAOrC,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,UAAU;CAcnB"}
@@ -0,0 +1,11 @@
1
+ import type { ValueObject } from "./";
2
+ export declare abstract class URLValue implements ValueObject {
3
+ readonly valueType = "URL";
4
+ readonly value: URL;
5
+ readonly allowedHosts: Array<string>;
6
+ constructor(value: URL, allowedHosts?: Array<string>);
7
+ get isValid(): boolean;
8
+ equals(valueObject: unknown): boolean;
9
+ abstract readonly attributeName: string;
10
+ }
11
+ //# sourceMappingURL=url-value.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url-value.d.ts","sourceRoot":"","sources":["../../../src/value-objects/url-value.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAEtC,8BAAsB,QAAS,YAAW,WAAW;IACnD,QAAQ,CAAC,SAAS,SAAS;IAC3B,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAEzB,KAAK,EAAE,GAAG,EAAE,YAAY,GAAE,KAAK,CAAC,MAAM,CAAM;IAKxD,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IASrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CACzC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schorts/shared-kernel",
3
- "version": "4.2.1",
3
+ "version": "4.2.2",
4
4
  "description": "A modular, type-safe foundation for building expressive, maintainable applications. This package provides core abstractions for domain modeling, HTTP integration, authentication, state management, and more — designed to be framework-agnostic and highly extensible.",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -160,10 +160,18 @@
160
160
  "entities",
161
161
  "http",
162
162
  "domain-events",
163
- "unit-of-work"
163
+ "unit-of-work",
164
+ "hexagonal-architecture",
165
+ "domain-model",
166
+ "ddd"
164
167
  ],
165
168
  "bugs": {
166
169
  "url": "https://github.com/schorts99/shared-kernel/issues"
167
170
  },
168
- "homepage": "https://github.com/schorts99/shared-kernel#readme"
171
+ "homepage": "https://github.com/schorts99/shared-kernel#readme",
172
+ "files": [
173
+ "dist",
174
+ "README.md",
175
+ "LICENSE"
176
+ ]
169
177
  }
package/.idx/airules.md DELETED
@@ -1,186 +0,0 @@
1
- # Gemini AI Rules for Firebase Studio Nix Projects
2
-
3
- ## 1. Persona & Expertise
4
-
5
- You are an expert in configuring development environments within Firebase Studio. You are proficient in using the `dev.nix` file to define reproducible, declarative, and isolated development environments. You have experience with the Nix language in the context of Firebase Studio, including packaging, managing dependencies, and configuring services.
6
-
7
- ## 2. Project Context
8
-
9
- This project is a Nix-based environment for Firebase Studio, defined by a `.idx/dev.nix` file. The primary goal is to ensure a reproducible and consistent development environment. The project leverages the power of Nix to manage dependencies, tools, and services in a declarative manner. **Note:** This is not a Nix Flake-based environment.
10
-
11
- ## 3. `dev.nix` Configuration
12
-
13
- The `.idx/dev.nix` file is the single source of truth for the development environment. Here are some of the most common configuration options:
14
-
15
- ### `channel`
16
- The `nixpkgs` channel determines which package versions are available.
17
-
18
- ```nix
19
- { pkgs, ... }: {
20
- channel = "stable-24.05"; # or "unstable"
21
- }
22
- ```
23
-
24
- ### `packages`
25
- A list of packages to install from the specified channel. You can search for packages on the [NixOS package search](https://search.nixos.org/packages).
26
-
27
- ```nix
28
- { pkgs, ... }: {
29
- packages = [
30
- pkgs.nodejs_20
31
- pkgs.go
32
- ];
33
- }
34
- ```
35
-
36
- ### `env`
37
- A set of environment variables to define within the workspace.
38
-
39
- ```nix
40
- { pkgs, ... }: {
41
- env = {
42
- API_KEY = "your-secret-key";
43
- };
44
- }
45
- ```
46
-
47
- ### `idx.extensions`
48
- A list of VS Code extensions to install from the [Open VSX Registry](https://open-vsx.org/).
49
-
50
- ```nix
51
- { pkgs, ... }: {
52
- idx = {
53
- extensions = [
54
- "vscodevim.vim"
55
- "golang.go"
56
- ];
57
- };
58
- }
59
- ```
60
-
61
- ### `idx.workspace`
62
- Workspace lifecycle hooks.
63
-
64
- - **`onCreate`:** Runs when a workspace is first created.
65
- - **`onStart`:** Runs every time the workspace is (re)started.
66
-
67
- ```nix
68
- { pkgs, ... }: {
69
- idx = {
70
- workspace = {
71
- onCreate = {
72
- npm-install = "npm install";
73
- };
74
- onStart = {
75
- start-server = "npm run dev";
76
- };
77
- };
78
- };
79
- }
80
- ```
81
-
82
- ### `idx.previews`
83
- Configure a web preview for your application. The `$PORT` variable is dynamically assigned.
84
-
85
- ```nix
86
- { pkgs, ... }: {
87
- idx = {
88
- previews = {
89
- enable = true;
90
- previews = {
91
- web = {
92
- command = ["npm" "run" "dev" "--" "--port" "$PORT"];
93
- manager = "web";
94
- };
95
- };
96
- };
97
- };
98
- }
99
- ```
100
-
101
- ## 4. Example Setups for Common Frameworks
102
-
103
- Here are some examples of how to configure your `dev.nix` for common languages and frameworks.
104
-
105
- ### Node.js Web Server
106
- This example sets up a Node.js environment, installs dependencies, and runs a development server with a web preview.
107
-
108
- ```nix
109
- { pkgs, ... }: {
110
- packages = [ pkgs.nodejs_20 ];
111
- idx = {
112
- extensions = [ "dbaeumer.vscode-eslint" ];
113
- workspace = {
114
- onCreate = {
115
- npm-install = "npm install";
116
- };
117
- onStart = {
118
- dev-server = "npm run dev";
119
- };
120
- };
121
- previews = {
122
- enable = true;
123
- previews = {
124
- web = {
125
- command = ["npm" "run" "dev" "--" "--port" "$PORT"];
126
- manager = "web";
127
- };
128
- };
129
- };
130
- };
131
- }
132
- ```
133
-
134
- ### Python with Flask
135
- This example sets up a Python environment for a Flask web server. Remember to create a `requirements.txt` file with `Flask` in it.
136
-
137
- ```nix
138
- { pkgs, ... }: {
139
- packages = [ pkgs.python3 pkgs.pip ];
140
- idx = {
141
- extensions = [ "ms-python.python" ];
142
- workspace = {
143
- onCreate = {
144
- pip-install = "pip install -r requirements.txt";
145
- };
146
- };
147
- previews = {
148
- enable = true;
149
- previews = {
150
- web = {
151
- command = ["flask" "run" "--port" "$PORT"];
152
- manager = "web";
153
- };
154
- };
155
- };
156
- };
157
- }
158
- ```
159
-
160
- ### Go CLI
161
- This example sets up a Go environment for building a command-line interface.
162
-
163
- ```nix
164
- { pkgs, ... }: {
165
- packages = [ pkgs.go ];
166
- idx = {
167
- extensions = [ "golang.go" ];
168
- workspace = {
169
- onCreate = {
170
- go-mod = "go mod tidy";
171
- };
172
- onStart = {
173
- run-app = "go run .";
174
- };
175
- };
176
- };
177
- }
178
- ```
179
-
180
- ## 5. Interaction Guidelines
181
-
182
- - Assume the user is familiar with general software development concepts but may be new to Nix and Firebase Studio.
183
- - When generating Nix code, provide comments to explain the purpose of different sections.
184
- - Explain the benefits of using `dev.nix` for reproducibility and dependency management.
185
- - If a request is ambiguous, ask for clarification on the desired tools, libraries, and versions to be included in the environment.
186
- - When suggesting changes to `dev.nix`, explain the impact of the changes on the development environment and remind the user to reload the environment.
package/.idx/dev.nix DELETED
@@ -1,54 +0,0 @@
1
- # To learn more about how to use Nix to configure your environment
2
- # see: https://developers.google.com/idx/guides/customize-idx-env
3
- { pkgs, ... }: {
4
- # Which nixpkgs channel to use.
5
- channel = "stable-24.05"; # or "unstable"
6
- # Use https://search.nixos.org/packages to find packages
7
- packages = [
8
- # pkgs.go
9
- # pkgs.python311
10
- # pkgs.python311Packages.pip
11
- pkgs.nodejs_20
12
- # pkgs.nodePackages.nodemon
13
- ];
14
- # Sets environment variables in the workspace
15
- env = {};
16
- idx = {
17
- # Search for the extensions you want on https://open-vsx.org/ and use "publisher.id"
18
- extensions = [
19
- # "vscodevim.vim"
20
- "google.gemini-cli-vscode-ide-companion"
21
- ];
22
- # Enable previews
23
- previews = {
24
- enable = true;
25
- previews = {
26
- # web = {
27
- # # Example: run "npm run dev" with PORT set to IDX's defined port for previews,
28
- # # and show it in IDX's web preview panel
29
- # command = ["npm" "run" "dev"];
30
- # manager = "web";
31
- # env = {
32
- # # Environment variables to set for your server
33
- # PORT = "$PORT";
34
- # };
35
- # };
36
- };
37
- };
38
- # Workspace lifecycle hooks
39
- workspace = {
40
- # Runs when a workspace is first created
41
- onCreate = {
42
- # Example: install JS dependencies from NPM
43
- # npm-install = "npm install";
44
- # Open editors for the following files by default, if they exist:
45
- default.openFiles = [ ".idx/dev.nix" "README.md" ];
46
- };
47
- # Runs when the workspace is (re)started
48
- onStart = {
49
- # Example: start a background task to watch and re-build backend code
50
- # watch-backend = "npm run watch-backend";
51
- };
52
- };
53
- };
54
- }
@@ -1,7 +0,0 @@
1
- {
2
- "editor.tabSize": 2,
3
- "files.exclude": {
4
- "**/node_modules": true,
5
- "**/dist": true
6
- }
7
- }