@dereekb/model 13.6.15 → 13.6.17

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/index.cjs.js CHANGED
@@ -21,6 +21,30 @@ var makeError = require('make-error');
21
21
  id: modelIdType
22
22
  });
23
23
 
24
+ /**
25
+ * Singleton ArkType schema that accepts any empty object (`{}`).
26
+ *
27
+ * Used as the canonical "no params" type for model API actions that require an ArkType schema but have no meaningful input fields.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * export const doSomethingParamsType = emptyType<DoSomethingParams>();
32
+ * ```
33
+ */ var EMPTY_ARKTYPE_TYPE = arktype.type({});
34
+ /**
35
+ * Returns the shared {@link EMPTY_ARKTYPE_TYPE} cast to the requested type, providing a typed empty-object schema
36
+ * without creating a new ArkType instance each time.
37
+ *
38
+ * @returns the singleton empty type schema typed as `Type<T>`
39
+ *
40
+ * @example
41
+ * ```typescript
42
+ * export interface ResyncAllParams {} // has no params currently
43
+ * export const resyncAllParamsType = emptyType<ResyncAllParams>();
44
+ * ```
45
+ */ function emptyType() {
46
+ return EMPTY_ARKTYPE_TYPE;
47
+ }
24
48
  function clearable(definition) {
25
49
  var result;
26
50
  if (typeof definition === 'string') {
@@ -2832,6 +2856,7 @@ exports.CASHAPP_BASE_URL = CASHAPP_BASE_URL;
2832
2856
  exports.CASHAPP_USERNAME_PREFIX = CASHAPP_USERNAME_PREFIX;
2833
2857
  exports.CASHAPP_WEBSITE_LINK_TYPE = CASHAPP_WEBSITE_LINK_TYPE;
2834
2858
  exports.EMAIL_URL_WEBSITE_LINK_TYPE = EMAIL_URL_WEBSITE_LINK_TYPE;
2859
+ exports.EMPTY_ARKTYPE_TYPE = EMPTY_ARKTYPE_TYPE;
2835
2860
  exports.FACEBOOK_BASE_URL = FACEBOOK_BASE_URL;
2836
2861
  exports.FACEBOOK_WEBSITE_LINK_TYPE = FACEBOOK_WEBSITE_LINK_TYPE;
2837
2862
  exports.FULL_ACCESS_ROLE_KEY = FULL_ACCESS_ROLE_KEY;
@@ -2890,6 +2915,7 @@ exports.e164PhoneNumberType = e164PhoneNumberType;
2890
2915
  exports.e164PhoneNumberWithExtensionType = e164PhoneNumberWithExtensionType;
2891
2916
  exports.e164PhoneNumberWithOptionalExtensionType = e164PhoneNumberWithOptionalExtensionType;
2892
2917
  exports.emailAddressToWebsiteLink = emailAddressToWebsiteLink;
2918
+ exports.emptyType = emptyType;
2893
2919
  exports.encodeWebsiteFileLinkToWebsiteLinkEncodedData = encodeWebsiteFileLinkToWebsiteLinkEncodedData;
2894
2920
  exports.facebookProfileUrl = facebookProfileUrl;
2895
2921
  exports.facebookProfileUrlToWebsiteLink = facebookProfileUrlToWebsiteLink;
package/index.esm.js CHANGED
@@ -19,6 +19,30 @@ import { BaseError } from 'make-error';
19
19
  id: modelIdType
20
20
  });
21
21
 
22
+ /**
23
+ * Singleton ArkType schema that accepts any empty object (`{}`).
24
+ *
25
+ * Used as the canonical "no params" type for model API actions that require an ArkType schema but have no meaningful input fields.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * export const doSomethingParamsType = emptyType<DoSomethingParams>();
30
+ * ```
31
+ */ var EMPTY_ARKTYPE_TYPE = type({});
32
+ /**
33
+ * Returns the shared {@link EMPTY_ARKTYPE_TYPE} cast to the requested type, providing a typed empty-object schema
34
+ * without creating a new ArkType instance each time.
35
+ *
36
+ * @returns the singleton empty type schema typed as `Type<T>`
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * export interface ResyncAllParams {} // has no params currently
41
+ * export const resyncAllParamsType = emptyType<ResyncAllParams>();
42
+ * ```
43
+ */ function emptyType() {
44
+ return EMPTY_ARKTYPE_TYPE;
45
+ }
22
46
  function clearable(definition) {
23
47
  var result;
24
48
  if (typeof definition === 'string') {
@@ -2818,4 +2842,4 @@ function _ts_generator(thisArg, body) {
2818
2842
  return val != null && isWebsiteUrlWithPrefix(val) || ctx.mustBe('a valid website URL starting with http:// or https://');
2819
2843
  });
2820
2844
 
2821
- export { ADDRESS_CITY_MAX_LENGTH, ADDRESS_COUNTRY_MAX_LENGTH, ADDRESS_LINE_MAX_LENGTH, ADDRESS_STATE_CODE_MAX_LENGTH, ADDRESS_STATE_MAX_LENGTH, ADDRESS_ZIP_MAX_LENGTH, ARKTYPE_DATE_DTO_TYPE, AbstractModelPermissionService, CASHAPP_BASE_URL, CASHAPP_USERNAME_PREFIX, CASHAPP_WEBSITE_LINK_TYPE, EMAIL_URL_WEBSITE_LINK_TYPE, FACEBOOK_BASE_URL, FACEBOOK_WEBSITE_LINK_TYPE, FULL_ACCESS_ROLE_KEY, GRANTED_ADMIN_ROLE_KEY, GRANTED_DELETE_ROLE_KEY, GRANTED_OWNER_ROLE_KEY, GRANTED_READ_ROLE_KEY, GRANTED_SYS_ADMIN_ROLE_KEY, GRANTED_UPDATE_ROLE_KEY, GrantedRoleMapReaderInstance, INSTAGRAM_BASE_URL, INSTAGRAM_WEBSITE_LINK_TYPE, NO_ACCESS_ROLE_KEY, PAYPAL_BASE_URL, PAYPAL_WEBSITE_LINK_TYPE, PHONE_URL_WEBSITE_LINK_TYPE, SNAPCHAT_BASE_URL, SNAPCHAT_WEBSITE_LINK_ISOLATE_PROFILE_ID, SNAPCHAT_WEBSITE_LINK_TYPE, SPOTIFY_BASE_URL, SPOTIFY_WEBSITE_LINK_ISOLATE_PROFILE_ID, SPOTIFY_WEBSITE_LINK_TYPE, TIKTOK_BASE_URL, TIKTOK_USERNAME_PREFIX, TIKTOK_WEBSITE_LINK_TYPE, TWITTER_BASE_URL, TWITTER_WEBSITE_LINK_TYPE, UNKNOWN_WEBSITE_LINK_TYPE, VENMO_BASE_URL, VENMO_WEBSITE_LINK_ISOLATE_PROFILE_ID, VENMO_WEBSITE_LINK_TYPE, WEBSITE_FILE_LINK_DATA_MAX_LENGTH, WEBSITE_FILE_LINK_DATA_REGEX, WEBSITE_FILE_LINK_ENCODE_SEPARATOR, WEBSITE_FILE_LINK_MIME_TYPE_MAX_LENGTH, WEBSITE_FILE_LINK_MIME_TYPE_REGEX, WEBSITE_FILE_LINK_NAME_MAX_LENGTH, WEBSITE_FILE_LINK_TYPE_MAX_LENGTH, WEBSITE_FILE_LINK_TYPE_REGEX, WEBSITE_FILE_LINK_WEBSITE_LINK_TYPE, WEBSITE_LINK_ENCODED_DATA_MAX_LENGTH, WEBSITE_LINK_ISOLATE_BASE_URL_PROFILE_ID, WEBSITE_LINK_TYPE_MAX_LENGTH, WEBSITE_LINK_TYPE_REGEX, WEBSITE_URL_WEBSITE_LINK_TYPE, YOUTUBE_BASE_URL, YOUTUBE_WEBSITE_LINK_ISOLATE_PROFILE_ID, YOUTUBE_WEBSITE_LINK_TYPE, basicSyncEntityCommonTypeSynchronizerInstanceFactory, cashappProfileUrl, cashappProfileUrlToWebsiteLink, clearable, contextGrantedModelRoles, decodeWebsiteLinkEncodedDataToWebsiteFileLink, e164PhoneNumberType, e164PhoneNumberWithExtensionType, e164PhoneNumberWithOptionalExtensionType, emailAddressToWebsiteLink, encodeWebsiteFileLinkToWebsiteLinkEncodedData, facebookProfileUrl, facebookProfileUrlToWebsiteLink, fullAccessGrantedModelRoles, fullAccessRoleMap, grantedRoleKeysMapFromArray, grantedRoleMapReader, instagramProfileUrl, instagramProfileUrlToWebsiteLink, isFullAccessRoleMap, isGrantedAdminLevelRole, isNoAccessRoleMap, isValidWebsiteLinkType, iso8601DayStringType, latLngPointType, latLngStringType, minuteOfDayType, modelIdType, modelKeyType, noAccessContextGrantedModelRoles, noAccessRoleMap, paypalProfileUrl, paypalProfileUrlToWebsiteLink, phoneNumberToWebsiteLink, snapchatProfileUrl, snapchatProfileUrlToWebsiteLink, spotifyProfileUrl, spotifyProfileUrlToWebsiteLink, syncEntityCommonTypeIdPairFactory, syncEntityFactory, syncEntitySynchronizer, targetModelIdParamsType, targetModelParamsType, tiktokProfileUrl, tiktokProfileUrlToWebsiteLink, toTransformAndValidateFunctionResult, toTransformAndValidateFunctionResultFactory, transformAndValidateFunctionResultFactory, transformAndValidateObject, transformAndValidateObjectFactory, transformAndValidateObjectResult, transformAndValidateResultFactory, twitterProfileUrl, twitterProfileUrlToWebsiteLink, uniqueKeyedType, unitedStatesAddressWithStateCodeType, unitedStatesAddressWithStateStringType, usernameFromUsernameOrWebsiteWithBaseUrlUsername, usernameFromUsernameOrWebsiteWithOneOffBaseUrlUsername, usernameOrWebsiteUrlToWebsiteUrl, venmoProfileUrl, venmoProfileUrlToWebsiteLink, websiteFileLinkToWebsiteLink, websiteFileLinkType, websiteLinkToWebsiteLinkFile, websiteLinkType, websiteUrlToWebsiteLink, websiteUrlType, websiteUrlWithPrefixType, youtubeProfileUrl, youtubeProfileUrlToWebsiteLink };
2845
+ export { ADDRESS_CITY_MAX_LENGTH, ADDRESS_COUNTRY_MAX_LENGTH, ADDRESS_LINE_MAX_LENGTH, ADDRESS_STATE_CODE_MAX_LENGTH, ADDRESS_STATE_MAX_LENGTH, ADDRESS_ZIP_MAX_LENGTH, ARKTYPE_DATE_DTO_TYPE, AbstractModelPermissionService, CASHAPP_BASE_URL, CASHAPP_USERNAME_PREFIX, CASHAPP_WEBSITE_LINK_TYPE, EMAIL_URL_WEBSITE_LINK_TYPE, EMPTY_ARKTYPE_TYPE, FACEBOOK_BASE_URL, FACEBOOK_WEBSITE_LINK_TYPE, FULL_ACCESS_ROLE_KEY, GRANTED_ADMIN_ROLE_KEY, GRANTED_DELETE_ROLE_KEY, GRANTED_OWNER_ROLE_KEY, GRANTED_READ_ROLE_KEY, GRANTED_SYS_ADMIN_ROLE_KEY, GRANTED_UPDATE_ROLE_KEY, GrantedRoleMapReaderInstance, INSTAGRAM_BASE_URL, INSTAGRAM_WEBSITE_LINK_TYPE, NO_ACCESS_ROLE_KEY, PAYPAL_BASE_URL, PAYPAL_WEBSITE_LINK_TYPE, PHONE_URL_WEBSITE_LINK_TYPE, SNAPCHAT_BASE_URL, SNAPCHAT_WEBSITE_LINK_ISOLATE_PROFILE_ID, SNAPCHAT_WEBSITE_LINK_TYPE, SPOTIFY_BASE_URL, SPOTIFY_WEBSITE_LINK_ISOLATE_PROFILE_ID, SPOTIFY_WEBSITE_LINK_TYPE, TIKTOK_BASE_URL, TIKTOK_USERNAME_PREFIX, TIKTOK_WEBSITE_LINK_TYPE, TWITTER_BASE_URL, TWITTER_WEBSITE_LINK_TYPE, UNKNOWN_WEBSITE_LINK_TYPE, VENMO_BASE_URL, VENMO_WEBSITE_LINK_ISOLATE_PROFILE_ID, VENMO_WEBSITE_LINK_TYPE, WEBSITE_FILE_LINK_DATA_MAX_LENGTH, WEBSITE_FILE_LINK_DATA_REGEX, WEBSITE_FILE_LINK_ENCODE_SEPARATOR, WEBSITE_FILE_LINK_MIME_TYPE_MAX_LENGTH, WEBSITE_FILE_LINK_MIME_TYPE_REGEX, WEBSITE_FILE_LINK_NAME_MAX_LENGTH, WEBSITE_FILE_LINK_TYPE_MAX_LENGTH, WEBSITE_FILE_LINK_TYPE_REGEX, WEBSITE_FILE_LINK_WEBSITE_LINK_TYPE, WEBSITE_LINK_ENCODED_DATA_MAX_LENGTH, WEBSITE_LINK_ISOLATE_BASE_URL_PROFILE_ID, WEBSITE_LINK_TYPE_MAX_LENGTH, WEBSITE_LINK_TYPE_REGEX, WEBSITE_URL_WEBSITE_LINK_TYPE, YOUTUBE_BASE_URL, YOUTUBE_WEBSITE_LINK_ISOLATE_PROFILE_ID, YOUTUBE_WEBSITE_LINK_TYPE, basicSyncEntityCommonTypeSynchronizerInstanceFactory, cashappProfileUrl, cashappProfileUrlToWebsiteLink, clearable, contextGrantedModelRoles, decodeWebsiteLinkEncodedDataToWebsiteFileLink, e164PhoneNumberType, e164PhoneNumberWithExtensionType, e164PhoneNumberWithOptionalExtensionType, emailAddressToWebsiteLink, emptyType, encodeWebsiteFileLinkToWebsiteLinkEncodedData, facebookProfileUrl, facebookProfileUrlToWebsiteLink, fullAccessGrantedModelRoles, fullAccessRoleMap, grantedRoleKeysMapFromArray, grantedRoleMapReader, instagramProfileUrl, instagramProfileUrlToWebsiteLink, isFullAccessRoleMap, isGrantedAdminLevelRole, isNoAccessRoleMap, isValidWebsiteLinkType, iso8601DayStringType, latLngPointType, latLngStringType, minuteOfDayType, modelIdType, modelKeyType, noAccessContextGrantedModelRoles, noAccessRoleMap, paypalProfileUrl, paypalProfileUrlToWebsiteLink, phoneNumberToWebsiteLink, snapchatProfileUrl, snapchatProfileUrlToWebsiteLink, spotifyProfileUrl, spotifyProfileUrlToWebsiteLink, syncEntityCommonTypeIdPairFactory, syncEntityFactory, syncEntitySynchronizer, targetModelIdParamsType, targetModelParamsType, tiktokProfileUrl, tiktokProfileUrlToWebsiteLink, toTransformAndValidateFunctionResult, toTransformAndValidateFunctionResultFactory, transformAndValidateFunctionResultFactory, transformAndValidateObject, transformAndValidateObjectFactory, transformAndValidateObjectResult, transformAndValidateResultFactory, twitterProfileUrl, twitterProfileUrlToWebsiteLink, uniqueKeyedType, unitedStatesAddressWithStateCodeType, unitedStatesAddressWithStateStringType, usernameFromUsernameOrWebsiteWithBaseUrlUsername, usernameFromUsernameOrWebsiteWithOneOffBaseUrlUsername, usernameOrWebsiteUrlToWebsiteUrl, venmoProfileUrl, venmoProfileUrlToWebsiteLink, websiteFileLinkToWebsiteLink, websiteFileLinkType, websiteLinkToWebsiteLinkFile, websiteLinkType, websiteUrlToWebsiteLink, websiteUrlType, websiteUrlWithPrefixType, youtubeProfileUrl, youtubeProfileUrlToWebsiteLink };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@dereekb/model",
3
- "version": "13.6.15",
3
+ "version": "13.6.17",
4
4
  "peerDependencies": {
5
- "@dereekb/util": "13.6.15",
5
+ "@dereekb/util": "13.6.17",
6
6
  "arktype": "^2.2.0",
7
7
  "make-error": "^1.3.0"
8
8
  },
@@ -1,5 +1,5 @@
1
1
  import { type Maybe } from '@dereekb/util';
2
- import { type type, type Type } from 'arktype';
2
+ import { type, type Type } from 'arktype';
3
3
  /**
4
4
  * A value that can be set to a value of `T`, or cleared by setting to `null` or `undefined`.
5
5
  *
@@ -19,6 +19,30 @@ import { type type, type Type } from 'arktype';
19
19
  * ```
20
20
  */
21
21
  export type Clearable<T> = Maybe<T>;
22
+ /**
23
+ * Singleton ArkType schema that accepts any empty object (`{}`).
24
+ *
25
+ * Used as the canonical "no params" type for model API actions that require an ArkType schema but have no meaningful input fields.
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * export const doSomethingParamsType = emptyType<DoSomethingParams>();
30
+ * ```
31
+ */
32
+ export declare const EMPTY_ARKTYPE_TYPE: Type<{}>;
33
+ /**
34
+ * Returns the shared {@link EMPTY_ARKTYPE_TYPE} cast to the requested type, providing a typed empty-object schema
35
+ * without creating a new ArkType instance each time.
36
+ *
37
+ * @returns the singleton empty type schema typed as `Type<T>`
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * export interface ResyncAllParams {} // has no params currently
42
+ * export const resyncAllParamsType = emptyType<ResyncAllParams>();
43
+ * ```
44
+ */
45
+ export declare function emptyType<T = {}>(): Type<T>;
22
46
  /**
23
47
  * Creates an ArkType schema that accepts the given ArkType definition OR null/undefined.
24
48
  * Used for fields where null acts as a "clear/reset" signal for the model.