@adonoustech/bacon-core 4.21.0 → 5.0.0

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.
package/dist/cjs/index.js CHANGED
@@ -13,4 +13,5 @@ tslib_1.__exportStar(require("./enums"), exports);
13
13
  tslib_1.__exportStar(require("./interfaces"), exports);
14
14
  tslib_1.__exportStar(require("./maps"), exports);
15
15
  tslib_1.__exportStar(require("./static"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0VBSUU7OztBQUVGLGlEQUF1QjtBQUN2QixxREFBMkI7QUFDM0Isc0RBQTRCO0FBQzVCLGtEQUF3QjtBQUN4Qix1REFBNkI7QUFDN0IsaURBQXVCO0FBQ3ZCLG1EQUF5QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBCYWNvbiBDb3JlXHJcbiAqIFxyXG4gKiBAbW9kdWxlIGJhY29uLWNvcmVcclxuKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vYmFzZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uY3JldGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL21hcHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3N0YXRpYyc7XHJcblxyXG4iXX0=
16
+ tslib_1.__exportStar(require("./utils"), exports);
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7O0VBSUU7OztBQUVGLGlEQUF1QjtBQUN2QixxREFBMkI7QUFDM0Isc0RBQTRCO0FBQzVCLGtEQUF3QjtBQUN4Qix1REFBNkI7QUFDN0IsaURBQXVCO0FBQ3ZCLG1EQUF5QjtBQUN6QixrREFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQmFjb24gQ29yZVxyXG4gKiBcclxuICogQG1vZHVsZSBiYWNvbi1jb3JlXHJcbiovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2NvbmNyZXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2VudW1zJztcclxuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYXBzJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdGF0aWMnO1xyXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcclxuXHJcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /**
3
+ * Core type utilities for flexible type creation and manipulation
4
+ * Minimum TypeScript Version: 4.5
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createTypeBuilder = void 0;
8
+ const createTypeBuilder = () => {
9
+ return {
10
+ required: (keys) => (0, exports.createTypeBuilder)(),
11
+ optional: (keys) => (0, exports.createTypeBuilder)(),
12
+ };
13
+ };
14
+ exports.createTypeBuilder = createTypeBuilder;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R5cGVVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7QUE2RUksTUFBTSxpQkFBaUIsR0FBRyxHQUFzQixFQUFFO0lBQ3ZELE9BQU87UUFDTCxRQUFRLEVBQUUsQ0FBb0IsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHlCQUFpQixHQUFLO1FBQ2xFLFFBQVEsRUFBRSxDQUFvQixJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUEseUJBQWlCLEdBQUs7S0FDakQsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFMVyxRQUFBLGlCQUFpQixxQkFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29yZSB0eXBlIHV0aWxpdGllcyBmb3IgZmxleGlibGUgdHlwZSBjcmVhdGlvbiBhbmQgbWFuaXB1bGF0aW9uXHJcbiAqIE1pbmltdW0gVHlwZVNjcmlwdCBWZXJzaW9uOiA0LjVcclxuICovXHJcblxyXG4vKipcclxuICogTWFrZXMgc3BlY2lmaWVkIHByb3BlcnRpZXMgb3B0aW9uYWwgd2hpbGUga2VlcGluZyBvdGhlcnMgcmVxdWlyZWRcclxuICogQGV4YW1wbGVcclxuICogaW50ZXJmYWNlIFVzZXIgeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmc7IH1cclxuICogdHlwZSBQYXJ0aWFsVXNlciA9IE1ha2VQcm9wZXJ0aWVzT3B0aW9uYWw8VXNlciwgJ25hbWUnIHwgJ2VtYWlsJz47XHJcbiAqIFJlc3VsdDogeyBpZDogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZzsgfVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgTWFrZVByb3BlcnRpZXNPcHRpb25hbDxULCBLIGV4dGVuZHMga2V5b2YgVCA9IG5ldmVyPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUIGFzIFAgZXh0ZW5kcyBLID8gbmV2ZXIgOiBQXTogVFtQXTtcclxufSAmIHtcclxuICBbUCBpbiBLXT86IFRbUF07XHJcbn07XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHR5cGUgd2l0aCBleHBsaWNpdGx5IGRlZmluZWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHByb3BlcnRpZXNcclxuICogU2FmZXIgYWx0ZXJuYXRpdmUgdG8gY29tcGxleCBkZWVwIHBhdGggbWFuaXB1bGF0aW9uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGludGVyZmFjZSBQcm9kdWN0IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBwcmljZTogbnVtYmVyOyBkZXNjcmlwdGlvbj86IHN0cmluZzsgfVxyXG4gKiB0eXBlIEJhc2ljUHJvZHVjdCA9IENvbmZpZ3VyYWJsZVR5cGU8UHJvZHVjdCwgJ2lkJyB8ICduYW1lJywgJ3ByaWNlJyB8ICdkZXNjcmlwdGlvbic+O1xyXG4gKiBSZXN1bHQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBwcmljZT86IG51bWJlcjsgZGVzY3JpcHRpb24/OiBzdHJpbmc7IH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWJsZVR5cGU8XHJcbiAgVCxcclxuICBSZXF1aXJlZCBleHRlbmRzIGtleW9mIFQsXHJcbiAgT3B0aW9uYWwgZXh0ZW5kcyBrZXlvZiBUID0gbmV2ZXJcclxuPiA9IHtcclxuICBbUCBpbiBSZXF1aXJlZF06IFRbUF07XHJcbn0gJiB7XHJcbiAgW1AgaW4gT3B0aW9uYWxdPzogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBNYWtlcyBhbGwgcHJvcGVydGllcyBvcHRpb25hbCBleGNlcHQgc3BlY2lmaWVkIG9uZXNcclxuICogU2FmZSB2ZXJzaW9uIHRoYXQgZG9lc24ndCByZWx5IG9uIGNvbXBsZXggc3RyaW5nIG1hbmlwdWxhdGlvblxyXG4gKiBAZXhhbXBsZVxyXG4gKiBpbnRlcmZhY2UgU2V0dGluZ3MgeyBpZDogc3RyaW5nOyBjb25maWc6IHsgdGhlbWU6IHN0cmluZzsgfTsgZGF0YT86IGFueTsgfVxyXG4gKiB0eXBlIFBhcnRpYWxTZXR0aW5ncyA9IERlZXBQYXJ0aWFsRXhjZXB0PFNldHRpbmdzLCAnaWQnPjtcclxuICogUmVzdWx0OiB7IGlkOiBzdHJpbmc7IGNvbmZpZz86IHsgdGhlbWU/OiBzdHJpbmc7IH07IGRhdGE/OiBhbnk7IH1cclxuICovXHJcbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsRXhjZXB0PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHtcclxuICBbUCBpbiBLXTogVFtQXTtcclxufSAmIHtcclxuICBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIEs+XT86IFRbUF0gZXh0ZW5kcyBvYmplY3RcclxuICAgID8gRGVlcFBhcnRpYWxFeGNlcHQ8VFtQXSwga2V5b2YgVFtQXT5cclxuICAgIDogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGJ1aWxkZXIgdXRpbGl0aWVzIGZvciBtb3JlIGV4cGxpY2l0IHR5cGUgY29uc3RydWN0aW9uXHJcbiAqIFVzZXMgc3RhYmxlIHR5cGUgc3lzdGVtIGZlYXR1cmVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBSZXF1aXJlZFByb3BzPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHtcclxuICBbUCBpbiBLXTogVFtQXTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvbmFsUHJvcHM8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0ge1xyXG4gIFtQIGluIEtdPzogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIHR5cGVzIHdpdGggZXhwbGljaXQgcmVxdWlyZWQvb3B0aW9uYWwgcHJvcGVydGllc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiBpbnRlcmZhY2UgVXNlciB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgZW1haWw6IHN0cmluZzsgcHJvZmlsZT86IGFueTsgfVxyXG4gKlxyXG4gKiBjb25zdCB1c2VyVHlwZSA9IGNyZWF0ZVR5cGVCdWlsZGVyPFVzZXI+KClcclxuICogICAucmVxdWlyZWQoWydpZCcsICdlbWFpbCddKVxyXG4gKiAgIC5vcHRpb25hbChbJ25hbWUnLCAncHJvZmlsZSddKTtcclxuICpcclxuICogdHlwZSBQYXJ0aWFsVXNlciA9IHR5cGVvZiB1c2VyVHlwZTtcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUJ1aWxkZXI8VD4ge1xyXG4gIHJlcXVpcmVkPEsgZXh0ZW5kcyBrZXlvZiBUPihrZXlzOiBLW10pOiBSZXF1aXJlZFByb3BzPFQsIEs+ICYgVHlwZUJ1aWxkZXI8VD47XHJcbiAgb3B0aW9uYWw8SyBleHRlbmRzIGtleW9mIFQ+KGtleXM6IEtbXSk6IE9wdGlvbmFsUHJvcHM8VCwgSz4gJiBUeXBlQnVpbGRlcjxUPjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZVR5cGVCdWlsZGVyID0gPFQ+KCk6IFR5cGVCdWlsZGVyPFQ+ID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgcmVxdWlyZWQ6IDxLIGV4dGVuZHMga2V5b2YgVD4oa2V5czogS1tdKSA9PiBjcmVhdGVUeXBlQnVpbGRlcjxUPigpLFxyXG4gICAgb3B0aW9uYWw6IDxLIGV4dGVuZHMga2V5b2YgVD4oa2V5czogS1tdKSA9PiBjcmVhdGVUeXBlQnVpbGRlcjxUPigpLFxyXG4gIH0gYXMgVHlwZUJ1aWxkZXI8VD47XHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./TypeUtils"), exports);
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQTRCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9UeXBlVXRpbHMnOyJdfQ==
package/dist/es/index.js CHANGED
@@ -10,4 +10,5 @@ export * from './enums';
10
10
  export * from './interfaces';
11
11
  export * from './maps';
12
12
  export * from './static';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUVGLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEJhY29uIENvcmVcclxuICogXHJcbiAqIEBtb2R1bGUgYmFjb24tY29yZVxyXG4qL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25jcmV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWFwcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGljJztcclxuXHJcbiJdfQ==
13
+ export * from './utils';
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7RUFJRTtBQUVGLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEJhY29uIENvcmVcclxuICogXHJcbiAqIEBtb2R1bGUgYmFjb24tY29yZVxyXG4qL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9iYXNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9jb25jcmV0ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcclxuZXhwb3J0ICogZnJvbSAnLi9lbnVtcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW50ZXJmYWNlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbWFwcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RhdGljJztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlscyc7XHJcblxyXG4iXX0=
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Core type utilities for flexible type creation and manipulation
3
+ * Minimum TypeScript Version: 4.5
4
+ */
5
+ export var createTypeBuilder = function () {
6
+ return {
7
+ required: function (keys) { return createTypeBuilder(); },
8
+ optional: function (keys) { return createTypeBuilder(); },
9
+ };
10
+ };
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVHlwZVV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL1R5cGVVdGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUE2RUgsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUc7SUFDL0IsT0FBTztRQUNMLFFBQVEsRUFBRSxVQUFvQixJQUFTLElBQUssT0FBQSxpQkFBaUIsRUFBSyxFQUF0QixDQUFzQjtRQUNsRSxRQUFRLEVBQUUsVUFBb0IsSUFBUyxJQUFLLE9BQUEsaUJBQWlCLEVBQUssRUFBdEIsQ0FBc0I7S0FDakQsQ0FBQztBQUN0QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQ29yZSB0eXBlIHV0aWxpdGllcyBmb3IgZmxleGlibGUgdHlwZSBjcmVhdGlvbiBhbmQgbWFuaXB1bGF0aW9uXHJcbiAqIE1pbmltdW0gVHlwZVNjcmlwdCBWZXJzaW9uOiA0LjVcclxuICovXHJcblxyXG4vKipcclxuICogTWFrZXMgc3BlY2lmaWVkIHByb3BlcnRpZXMgb3B0aW9uYWwgd2hpbGUga2VlcGluZyBvdGhlcnMgcmVxdWlyZWRcclxuICogQGV4YW1wbGVcclxuICogaW50ZXJmYWNlIFVzZXIgeyBpZDogc3RyaW5nOyBuYW1lOiBzdHJpbmc7IGVtYWlsOiBzdHJpbmc7IH1cclxuICogdHlwZSBQYXJ0aWFsVXNlciA9IE1ha2VQcm9wZXJ0aWVzT3B0aW9uYWw8VXNlciwgJ25hbWUnIHwgJ2VtYWlsJz47XHJcbiAqIFJlc3VsdDogeyBpZDogc3RyaW5nOyBuYW1lPzogc3RyaW5nOyBlbWFpbD86IHN0cmluZzsgfVxyXG4gKi9cclxuZXhwb3J0IHR5cGUgTWFrZVByb3BlcnRpZXNPcHRpb25hbDxULCBLIGV4dGVuZHMga2V5b2YgVCA9IG5ldmVyPiA9IHtcclxuICBbUCBpbiBrZXlvZiBUIGFzIFAgZXh0ZW5kcyBLID8gbmV2ZXIgOiBQXTogVFtQXTtcclxufSAmIHtcclxuICBbUCBpbiBLXT86IFRbUF07XHJcbn07XHJcblxyXG4vKipcclxuICogQ3JlYXRlcyBhIHR5cGUgd2l0aCBleHBsaWNpdGx5IGRlZmluZWQgcmVxdWlyZWQgYW5kIG9wdGlvbmFsIHByb3BlcnRpZXNcclxuICogU2FmZXIgYWx0ZXJuYXRpdmUgdG8gY29tcGxleCBkZWVwIHBhdGggbWFuaXB1bGF0aW9uXHJcbiAqIEBleGFtcGxlXHJcbiAqIGludGVyZmFjZSBQcm9kdWN0IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBwcmljZTogbnVtYmVyOyBkZXNjcmlwdGlvbj86IHN0cmluZzsgfVxyXG4gKiB0eXBlIEJhc2ljUHJvZHVjdCA9IENvbmZpZ3VyYWJsZVR5cGU8UHJvZHVjdCwgJ2lkJyB8ICduYW1lJywgJ3ByaWNlJyB8ICdkZXNjcmlwdGlvbic+O1xyXG4gKiBSZXN1bHQ6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nOyBwcmljZT86IG51bWJlcjsgZGVzY3JpcHRpb24/OiBzdHJpbmc7IH1cclxuICovXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWJsZVR5cGU8XHJcbiAgVCxcclxuICBSZXF1aXJlZCBleHRlbmRzIGtleW9mIFQsXHJcbiAgT3B0aW9uYWwgZXh0ZW5kcyBrZXlvZiBUID0gbmV2ZXJcclxuPiA9IHtcclxuICBbUCBpbiBSZXF1aXJlZF06IFRbUF07XHJcbn0gJiB7XHJcbiAgW1AgaW4gT3B0aW9uYWxdPzogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBNYWtlcyBhbGwgcHJvcGVydGllcyBvcHRpb25hbCBleGNlcHQgc3BlY2lmaWVkIG9uZXNcclxuICogU2FmZSB2ZXJzaW9uIHRoYXQgZG9lc24ndCByZWx5IG9uIGNvbXBsZXggc3RyaW5nIG1hbmlwdWxhdGlvblxyXG4gKiBAZXhhbXBsZVxyXG4gKiBpbnRlcmZhY2UgU2V0dGluZ3MgeyBpZDogc3RyaW5nOyBjb25maWc6IHsgdGhlbWU6IHN0cmluZzsgfTsgZGF0YT86IGFueTsgfVxyXG4gKiB0eXBlIFBhcnRpYWxTZXR0aW5ncyA9IERlZXBQYXJ0aWFsRXhjZXB0PFNldHRpbmdzLCAnaWQnPjtcclxuICogUmVzdWx0OiB7IGlkOiBzdHJpbmc7IGNvbmZpZz86IHsgdGhlbWU/OiBzdHJpbmc7IH07IGRhdGE/OiBhbnk7IH1cclxuICovXHJcbmV4cG9ydCB0eXBlIERlZXBQYXJ0aWFsRXhjZXB0PFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHtcclxuICBbUCBpbiBLXTogVFtQXTtcclxufSAmIHtcclxuICBbUCBpbiBFeGNsdWRlPGtleW9mIFQsIEs+XT86IFRbUF0gZXh0ZW5kcyBvYmplY3RcclxuICAgID8gRGVlcFBhcnRpYWxFeGNlcHQ8VFtQXSwga2V5b2YgVFtQXT5cclxuICAgIDogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGJ1aWxkZXIgdXRpbGl0aWVzIGZvciBtb3JlIGV4cGxpY2l0IHR5cGUgY29uc3RydWN0aW9uXHJcbiAqIFVzZXMgc3RhYmxlIHR5cGUgc3lzdGVtIGZlYXR1cmVzXHJcbiAqL1xyXG5leHBvcnQgdHlwZSBSZXF1aXJlZFByb3BzPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9IHtcclxuICBbUCBpbiBLXTogVFtQXTtcclxufTtcclxuXHJcbmV4cG9ydCB0eXBlIE9wdGlvbmFsUHJvcHM8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0ge1xyXG4gIFtQIGluIEtdPzogVFtQXTtcclxufTtcclxuXHJcbi8qKlxyXG4gKiBUeXBlIGJ1aWxkZXIgZm9yIGNyZWF0aW5nIHR5cGVzIHdpdGggZXhwbGljaXQgcmVxdWlyZWQvb3B0aW9uYWwgcHJvcGVydGllc1xyXG4gKiBAZXhhbXBsZVxyXG4gKiBpbnRlcmZhY2UgVXNlciB7IGlkOiBzdHJpbmc7IG5hbWU6IHN0cmluZzsgZW1haWw6IHN0cmluZzsgcHJvZmlsZT86IGFueTsgfVxyXG4gKlxyXG4gKiBjb25zdCB1c2VyVHlwZSA9IGNyZWF0ZVR5cGVCdWlsZGVyPFVzZXI+KClcclxuICogICAucmVxdWlyZWQoWydpZCcsICdlbWFpbCddKVxyXG4gKiAgIC5vcHRpb25hbChbJ25hbWUnLCAncHJvZmlsZSddKTtcclxuICpcclxuICogdHlwZSBQYXJ0aWFsVXNlciA9IHR5cGVvZiB1c2VyVHlwZTtcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUJ1aWxkZXI8VD4ge1xyXG4gIHJlcXVpcmVkPEsgZXh0ZW5kcyBrZXlvZiBUPihrZXlzOiBLW10pOiBSZXF1aXJlZFByb3BzPFQsIEs+ICYgVHlwZUJ1aWxkZXI8VD47XHJcbiAgb3B0aW9uYWw8SyBleHRlbmRzIGtleW9mIFQ+KGtleXM6IEtbXSk6IE9wdGlvbmFsUHJvcHM8VCwgSz4gJiBUeXBlQnVpbGRlcjxUPjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGNyZWF0ZVR5cGVCdWlsZGVyID0gPFQ+KCk6IFR5cGVCdWlsZGVyPFQ+ID0+IHtcclxuICByZXR1cm4ge1xyXG4gICAgcmVxdWlyZWQ6IDxLIGV4dGVuZHMga2V5b2YgVD4oa2V5czogS1tdKSA9PiBjcmVhdGVUeXBlQnVpbGRlcjxUPigpLFxyXG4gICAgb3B0aW9uYWw6IDxLIGV4dGVuZHMga2V5b2YgVD4oa2V5czogS1tdKSA9PiBjcmVhdGVUeXBlQnVpbGRlcjxUPigpLFxyXG4gIH0gYXMgVHlwZUJ1aWxkZXI8VD47XHJcbn07XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './TypeUtils';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL1R5cGVVdGlscyc7Il19
@@ -10,3 +10,4 @@ export * from './enums';
10
10
  export * from './interfaces';
11
11
  export * from './maps';
12
12
  export * from './static';
13
+ export * from './utils';
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Core type utilities for flexible type creation and manipulation
3
+ * Minimum TypeScript Version: 4.5
4
+ */
5
+ /**
6
+ * Makes specified properties optional while keeping others required
7
+ * @example
8
+ * interface User { id: string; name: string; email: string; }
9
+ * type PartialUser = MakePropertiesOptional<User, 'name' | 'email'>;
10
+ * Result: { id: string; name?: string; email?: string; }
11
+ */
12
+ export type MakePropertiesOptional<T, K extends keyof T = never> = {
13
+ [P in keyof T as P extends K ? never : P]: T[P];
14
+ } & {
15
+ [P in K]?: T[P];
16
+ };
17
+ /**
18
+ * Creates a type with explicitly defined required and optional properties
19
+ * Safer alternative to complex deep path manipulation
20
+ * @example
21
+ * interface Product { id: string; name: string; price: number; description?: string; }
22
+ * type BasicProduct = ConfigurableType<Product, 'id' | 'name', 'price' | 'description'>;
23
+ * Result: { id: string; name: string; price?: number; description?: string; }
24
+ */
25
+ export type ConfigurableType<T, Required extends keyof T, Optional extends keyof T = never> = {
26
+ [P in Required]: T[P];
27
+ } & {
28
+ [P in Optional]?: T[P];
29
+ };
30
+ /**
31
+ * Makes all properties optional except specified ones
32
+ * Safe version that doesn't rely on complex string manipulation
33
+ * @example
34
+ * interface Settings { id: string; config: { theme: string; }; data?: any; }
35
+ * type PartialSettings = DeepPartialExcept<Settings, 'id'>;
36
+ * Result: { id: string; config?: { theme?: string; }; data?: any; }
37
+ */
38
+ export type DeepPartialExcept<T, K extends keyof T> = {
39
+ [P in K]: T[P];
40
+ } & {
41
+ [P in Exclude<keyof T, K>]?: T[P] extends object ? DeepPartialExcept<T[P], keyof T[P]> : T[P];
42
+ };
43
+ /**
44
+ * Type builder utilities for more explicit type construction
45
+ * Uses stable type system features
46
+ */
47
+ export type RequiredProps<T, K extends keyof T> = {
48
+ [P in K]: T[P];
49
+ };
50
+ export type OptionalProps<T, K extends keyof T> = {
51
+ [P in K]?: T[P];
52
+ };
53
+ /**
54
+ * Type builder for creating types with explicit required/optional properties
55
+ * @example
56
+ * interface User { id: string; name: string; email: string; profile?: any; }
57
+ *
58
+ * const userType = createTypeBuilder<User>()
59
+ * .required(['id', 'email'])
60
+ * .optional(['name', 'profile']);
61
+ *
62
+ * type PartialUser = typeof userType;
63
+ */
64
+ export interface TypeBuilder<T> {
65
+ required<K extends keyof T>(keys: K[]): RequiredProps<T, K> & TypeBuilder<T>;
66
+ optional<K extends keyof T>(keys: K[]): OptionalProps<T, K> & TypeBuilder<T>;
67
+ }
68
+ export declare const createTypeBuilder: <T>() => TypeBuilder<T>;
@@ -0,0 +1 @@
1
+ export * from './TypeUtils';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adonoustech/bacon-core",
3
- "version": "4.21.0",
3
+ "version": "5.0.0",
4
4
  "scripts": {
5
5
  "build:cjs": "tsc -p tsconfig.cjs.json",
6
6
  "build:es": "tsc -p tsconfig.es.json",
@@ -39,5 +39,5 @@
39
39
  "bugs": {
40
40
  "url": "https://github.com/AdonousTech/bacon-core/issues"
41
41
  },
42
- "gitHead": "c3b571114811d949cab9af8f3b1cb28b8c6a7873"
42
+ "gitHead": "1a630568fb62a64a25f5f750e3c498281ba17711"
43
43
  }
package/src/index.ts CHANGED
@@ -11,4 +11,5 @@ export * from './enums';
11
11
  export * from './interfaces';
12
12
  export * from './maps';
13
13
  export * from './static';
14
+ export * from './utils';
14
15
 
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Core type utilities for flexible type creation and manipulation
3
+ * Minimum TypeScript Version: 4.5
4
+ */
5
+
6
+ /**
7
+ * Makes specified properties optional while keeping others required
8
+ * @example
9
+ * interface User { id: string; name: string; email: string; }
10
+ * type PartialUser = MakePropertiesOptional<User, 'name' | 'email'>;
11
+ * Result: { id: string; name?: string; email?: string; }
12
+ */
13
+ export type MakePropertiesOptional<T, K extends keyof T = never> = {
14
+ [P in keyof T as P extends K ? never : P]: T[P];
15
+ } & {
16
+ [P in K]?: T[P];
17
+ };
18
+
19
+ /**
20
+ * Creates a type with explicitly defined required and optional properties
21
+ * Safer alternative to complex deep path manipulation
22
+ * @example
23
+ * interface Product { id: string; name: string; price: number; description?: string; }
24
+ * type BasicProduct = ConfigurableType<Product, 'id' | 'name', 'price' | 'description'>;
25
+ * Result: { id: string; name: string; price?: number; description?: string; }
26
+ */
27
+ export type ConfigurableType<
28
+ T,
29
+ Required extends keyof T,
30
+ Optional extends keyof T = never
31
+ > = {
32
+ [P in Required]: T[P];
33
+ } & {
34
+ [P in Optional]?: T[P];
35
+ };
36
+
37
+ /**
38
+ * Makes all properties optional except specified ones
39
+ * Safe version that doesn't rely on complex string manipulation
40
+ * @example
41
+ * interface Settings { id: string; config: { theme: string; }; data?: any; }
42
+ * type PartialSettings = DeepPartialExcept<Settings, 'id'>;
43
+ * Result: { id: string; config?: { theme?: string; }; data?: any; }
44
+ */
45
+ export type DeepPartialExcept<T, K extends keyof T> = {
46
+ [P in K]: T[P];
47
+ } & {
48
+ [P in Exclude<keyof T, K>]?: T[P] extends object
49
+ ? DeepPartialExcept<T[P], keyof T[P]>
50
+ : T[P];
51
+ };
52
+
53
+ /**
54
+ * Type builder utilities for more explicit type construction
55
+ * Uses stable type system features
56
+ */
57
+ export type RequiredProps<T, K extends keyof T> = {
58
+ [P in K]: T[P];
59
+ };
60
+
61
+ export type OptionalProps<T, K extends keyof T> = {
62
+ [P in K]?: T[P];
63
+ };
64
+
65
+ /**
66
+ * Type builder for creating types with explicit required/optional properties
67
+ * @example
68
+ * interface User { id: string; name: string; email: string; profile?: any; }
69
+ *
70
+ * const userType = createTypeBuilder<User>()
71
+ * .required(['id', 'email'])
72
+ * .optional(['name', 'profile']);
73
+ *
74
+ * type PartialUser = typeof userType;
75
+ */
76
+ export interface TypeBuilder<T> {
77
+ required<K extends keyof T>(keys: K[]): RequiredProps<T, K> & TypeBuilder<T>;
78
+ optional<K extends keyof T>(keys: K[]): OptionalProps<T, K> & TypeBuilder<T>;
79
+ }
80
+
81
+ export const createTypeBuilder = <T>(): TypeBuilder<T> => {
82
+ return {
83
+ required: <K extends keyof T>(keys: K[]) => createTypeBuilder<T>(),
84
+ optional: <K extends keyof T>(keys: K[]) => createTypeBuilder<T>(),
85
+ } as TypeBuilder<T>;
86
+ };
@@ -0,0 +1 @@
1
+ export * from './TypeUtils';