@vltpkg/types 0.0.0-12 → 0.0.0-14

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.
@@ -154,12 +154,43 @@ export type RevDoc = Omit<Packument, 'versions'> & {
154
154
  /** all named shas referenced above */
155
155
  shas: Record<string, string[]>;
156
156
  };
157
+ export declare const integrityRE: RegExp;
157
158
  export declare const isIntegrity: (i: unknown) => i is Integrity;
158
159
  export declare const asIntegrity: (i: unknown) => Integrity;
159
160
  export declare const assertIntegrity: (i: unknown) => asserts i is Integrity;
161
+ export declare const keyIDRE: RegExp;
160
162
  export declare const isKeyID: (k: unknown) => k is KeyID;
161
163
  export declare const asKeyID: (k: unknown) => KeyID;
162
164
  export declare const assertKeyID: (k: unknown) => asserts k is KeyID;
165
+ /**
166
+ * Convert an unknown value to an error.
167
+ */
168
+ export declare const asError: (er: unknown, fallbackMessage?: string) => Error;
169
+ /**
170
+ * Check if a value is an error.
171
+ */
172
+ export declare const isError: (er: unknown) => er is Error;
173
+ /**
174
+ * Check if an error has a cause property.
175
+ */
176
+ export declare const isErrorWithCause: (er: unknown) => er is Error & {
177
+ cause: unknown;
178
+ };
179
+ /**
180
+ * Check if an unknown value is a plain object.
181
+ */
182
+ export declare const isObject: (v: unknown) => v is Record<string, unknown>;
183
+ export declare const maybeRecordStringString: (o: unknown) => o is Record<string, string> | undefined;
184
+ export declare const isRecordStringString: (o: unknown) => o is Record<string, string>;
185
+ export declare const assertRecordStringString: (o: unknown) => void;
186
+ export declare const isRecordStringT: <T>(o: unknown, check: (o: unknown) => o is T) => o is Record<string, T>;
187
+ export declare const assertRecordStringT: <T>(o: unknown, check: (o: unknown) => o is T, wanted: string) => asserts o is Record<string, T>;
188
+ export declare const isRecordStringManifest: (o: unknown) => o is Record<string, Manifest>;
189
+ export declare const maybePeerDependenciesMetaSet: (o: unknown) => o is Record<string, PeerDependenciesMetaValue> | undefined;
190
+ export declare const maybeBoolean: (o: unknown) => o is boolean;
191
+ export declare const isPeerDependenciesMetaValue: (o: unknown) => o is PeerDependenciesMetaValue;
192
+ export declare const maybeString: (a: unknown) => a is string | undefined;
193
+ export declare const maybeDist: (a: unknown) => a is Manifest["dist"];
163
194
  export declare const isManifest: (m: unknown) => m is Manifest;
164
195
  export declare const isManifestRegistry: (m: unknown) => m is ManifestRegistry;
165
196
  export declare const asManifest: (m: unknown, from?: (...a: unknown[]) => any) => Manifest;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { error } from '@vltpkg/error-cause';
2
- const integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/;
2
+ export const integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/;
3
3
  export const isIntegrity = (i) => typeof i === 'string' && integrityRE.test(i);
4
4
  export const asIntegrity = (i) => {
5
5
  if (!isIntegrity(i)) {
@@ -13,7 +13,7 @@ export const asIntegrity = (i) => {
13
13
  export const assertIntegrity = i => {
14
14
  asIntegrity(i);
15
15
  };
16
- const keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/;
16
+ export const keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/;
17
17
  export const isKeyID = (k) => typeof k === 'string' && keyIDRE.test(k);
18
18
  export const asKeyID = (k) => {
19
19
  if (!isKeyID(k)) {
@@ -27,19 +27,48 @@ export const asKeyID = (k) => {
27
27
  export const assertKeyID = k => {
28
28
  asKeyID(k);
29
29
  };
30
- const isObj = (o) => !!o && typeof o === 'object';
31
- const maybeRecordStringString = (o) => o === undefined || isRecordStringString(o);
32
- const isRecordStringString = (o) => isRecordStringT(o, s => typeof s === 'string');
33
- const isRecordStringT = (o, check) => isObj(o) &&
30
+ /**
31
+ * Convert an unknown value to an error.
32
+ */
33
+ export const asError = (er, fallbackMessage = 'Unknown error') => er instanceof Error ? er : new Error(String(er) || fallbackMessage);
34
+ /**
35
+ * Check if a value is an error.
36
+ */
37
+ export const isError = (er) => er instanceof Error;
38
+ /**
39
+ * Check if an error has a cause property.
40
+ */
41
+ export const isErrorWithCause = (er) => isError(er) && 'cause' in er;
42
+ /**
43
+ * Check if an unknown value is a plain object.
44
+ */
45
+ export const isObject = (v) => !!v &&
46
+ typeof v === 'object' &&
47
+ (v.constructor === Object ||
48
+ v.constructor === undefined);
49
+ export const maybeRecordStringString = (o) => o === undefined || isRecordStringString(o);
50
+ export const isRecordStringString = (o) => isRecordStringT(o, s => typeof s === 'string');
51
+ export const assertRecordStringString = (o) => assertRecordStringT(o, s => typeof s === 'string', 'Record<string, string>');
52
+ export const isRecordStringT = (o, check) => isObject(o) &&
34
53
  Object.entries(o).every(([k, v]) => typeof k === 'string' && check(v));
35
- const isRecordStringManifest = (o) => isRecordStringT(o, v => isManifest(v));
36
- const maybePeerDependenciesMetaSet = (o) => o === undefined ||
54
+ export const assertRecordStringT = (o, check,
55
+ /** a type description, like 'Record<string, Record<string, string>>' */
56
+ wanted) => {
57
+ if (!isRecordStringT(o, check)) {
58
+ throw error('Invalid record', {
59
+ found: o,
60
+ wanted,
61
+ });
62
+ }
63
+ };
64
+ export const isRecordStringManifest = (o) => isRecordStringT(o, v => isManifest(v));
65
+ export const maybePeerDependenciesMetaSet = (o) => o === undefined ||
37
66
  isRecordStringT(o, v => isPeerDependenciesMetaValue(v));
38
- const maybeBoolean = (o) => o === undefined || typeof o === 'boolean';
39
- const isPeerDependenciesMetaValue = (o) => isObj(o) && maybeBoolean(o.optional);
40
- const maybeString = (a) => a === undefined || typeof a === 'string';
41
- const maybeDist = (a) => a === undefined || (isObj(a) && maybeString(a.tarball));
42
- export const isManifest = (m) => isObj(m) &&
67
+ export const maybeBoolean = (o) => o === undefined || typeof o === 'boolean';
68
+ export const isPeerDependenciesMetaValue = (o) => isObject(o) && maybeBoolean(o.optional);
69
+ export const maybeString = (a) => a === undefined || typeof a === 'string';
70
+ export const maybeDist = (a) => a === undefined || (isObject(a) && maybeString(a.tarball));
71
+ export const isManifest = (m) => isObject(m) &&
43
72
  !Array.isArray(m) &&
44
73
  maybeString(m.name) &&
45
74
  maybeString(m.version) &&
@@ -70,7 +99,7 @@ export const assertManifestRegistry = m => {
70
99
  asManifestRegistry(m, assertManifestRegistry);
71
100
  };
72
101
  export const isPackument = (p) => {
73
- if (!isObj(p) || typeof p.name !== 'string')
102
+ if (!isObject(p) || typeof p.name !== 'string')
74
103
  return false;
75
104
  const { versions, 'dist-tags': distTags, time } = p;
76
105
  return (isRecordStringString(distTags) &&
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\n\n/** anything that can be encoded in JSON */\nexport type JSONField =\n | JSONField[]\n | boolean\n | number\n | string\n | { [k: string]: JSONField }\n | null\n | undefined\n\n/** sha512 SRI string */\nexport type Integrity = `sha512-${string}`\n\n/** SHA256 key identifier */\nexport type KeyID = `SHA256:${string}`\n\n/** The Manifest['dist'] field present in registry manifests */\nexport type Dist = {\n integrity?: Integrity\n shasum?: string\n tarball?: string\n fileCount?: number\n unpackedSize?: number\n signatures?: {\n keyid: KeyID\n sig: string\n }[]\n}\n\n/** An object used to mark some peerDeps as optional */\nexport type PeerDependenciesMetaValue = {\n optional?: boolean\n}\n\n// Don't use Record here since TS cant do circular references with that\n// https://github.com/microsoft/TypeScript/issues/41164#issuecomment-1427073368\nexport type ConditionalValueObject = {\n [k: string]: ConditionalValue\n}\n\nexport type ConditionalValue =\n | ConditionalValue[]\n | ConditionalValueObject\n | string\n | null\n\nexport type ExportsSubpaths = {\n [path in '.' | `./${string}`]?: ConditionalValue\n}\n\nexport type Exports =\n | Exclude<ConditionalValue, null>\n | ExportsSubpaths\n\nexport type Imports = Record<`#${string}`, ConditionalValue>\n\nexport type FundingEntry = string | { url: string }\nexport type Funding = FundingEntry | FundingEntry[]\n\nexport type Person =\n | string\n | {\n name: string\n url?: string\n email?: string\n }\n\nexport type Repository =\n | string\n | {\n type: string\n url: string\n }\n\nexport type Bugs =\n | string\n | {\n url?: string\n email?: string\n }\n\nexport type Manifest = {\n /** The name of the package. optional because {} is a valid package.json */\n name?: string\n /** The version of the package. optional because {} is a valid package.json */\n version?: string\n /** production dependencies, name:specifier */\n dependencies?: Record<string, string>\n /** development dependencies, name:specifier */\n devDependencies?: Record<string, string>\n /** optional dependencies, name:specifier */\n optionalDependencies?: Record<string, string>\n /** peer dependencies, name:specifier */\n peerDependencies?: Record<string, string>\n /** peer dependencies marked as optional */\n peerDependenciesMeta?: Record<string, PeerDependenciesMetaValue>\n /** dependency ranges that are acceptable, but not forced */\n acceptDependencies?: Record<string, string>\n /** names of dependencies included in the package tarball */\n bundleDependencies?: string[]\n /** a message indicating that this is not to be used */\n deprecated?: string\n /** executable built and linked by this package */\n bin?: Record<string, string> | string\n /** run-script actions for this package */\n scripts?: Record<string, string>\n /** supported run-time platforms this package can run on */\n engines?: Record<string, string>\n /** supported operating systems this package can run on */\n os?: string[] | string\n /** supported CPU architectures this package can run on */\n cpu?: string[] | string\n /** URLs that can be visited to fund this project */\n funding?: Funding\n /** The homepage of the repository */\n homepage?: string\n /**\n * Only present in Manifests served by a registry. Contains information\n * about the artifact served for this package release.\n */\n dist?: Dist\n /** a short description of the package */\n description?: string\n /** search keywords */\n keywords?: string[]\n /** where to go to file issues */\n bugs?: Bugs\n /** where the development happens */\n repository?: Repository\n /** the main module, if exports['.'] is not set */\n main?: string\n /** named subpath exports */\n exports?: Exports\n /** named #identifier imports */\n imports?: Imports\n /**\n * the HEAD of the git repo this was published from\n * only present in published packages\n */\n gitHead?: string\n /** whether the package is private */\n private?: boolean\n /** whether this is ESM or CommonJS by default */\n type?: 'commonjs' | 'module'\n /** npm puts this on published manifests */\n gypfile?: boolean\n /** the author of a package */\n author?: Person\n /** contributors to the package */\n contributors?: Person[]\n /** the license of the package */\n license?: string\n}\n\nexport type ManifestRegistry = Manifest &\n Required<Pick<Manifest, 'name' | 'version' | 'dist'>>\n\nexport type Packument = {\n name: string\n 'dist-tags': Record<string, string>\n versions: Record<string, Manifest>\n modified?: string\n time?: Record<string, string>\n readme?: string\n}\n\nexport type RefType = 'branch' | 'head' | 'other' | 'pull' | 'tag'\n\n/**\n * A representation of a given remote ref in a {@link RevDoc} object.\n */\nexport type RevDocEntry = Omit<Manifest, 'type'> &\n Required<Pick<Manifest, 'version'>> & {\n /** sha this references */\n sha: string\n /** ref as passed git locally */\n ref: string\n /** canonical full ref, like `refs/tags/blahblah` */\n rawRef: string\n /** what type of ref this is: 'branch', 'tag', etc. */\n type: RefType\n }\n\n/**\n * An object kind of resembling a packument, but about a git repo.\n */\nexport type RevDoc = Omit<Packument, 'versions'> & {\n /** all semver-looking tags go in this record */\n versions: Record<string, RevDocEntry>\n /** all named things that can be cloned down remotely */\n refs: Record<string, RevDocEntry>\n /** all named shas referenced above */\n shas: Record<string, string[]>\n}\n\nconst integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/\nexport const isIntegrity = (i: unknown): i is Integrity =>\n typeof i === 'string' && integrityRE.test(i)\n\nexport const asIntegrity = (i: unknown): Integrity => {\n if (!isIntegrity(i)) {\n throw error(\n 'invalid integrity',\n {\n found: i,\n wanted: integrityRE,\n },\n asIntegrity,\n )\n }\n return i\n}\n\nexport const assertIntegrity: (\n i: unknown,\n) => asserts i is Integrity = i => {\n asIntegrity(i)\n}\n\nconst keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/\nexport const isKeyID = (k: unknown): k is KeyID =>\n typeof k === 'string' && keyIDRE.test(k)\n\nexport const asKeyID = (k: unknown): KeyID => {\n if (!isKeyID(k)) {\n throw error(\n 'invalid key ID',\n {\n found: k,\n wanted: keyIDRE,\n },\n asKeyID,\n )\n }\n return k\n}\n\nexport const assertKeyID: (k: unknown) => asserts k is KeyID = k => {\n asKeyID(k)\n}\n\nconst isObj = (o: unknown): o is Record<string, unknown> =>\n !!o && typeof o === 'object'\n\nconst maybeRecordStringString = (\n o: unknown,\n): o is Record<string, string> | undefined =>\n o === undefined || isRecordStringString(o)\n\nconst isRecordStringString = (\n o: unknown,\n): o is Record<string, string> =>\n isRecordStringT<string>(o, s => typeof s === 'string')\n\nconst isRecordStringT = <T>(\n o: unknown,\n check: (o: unknown) => boolean,\n): o is Record<string, T> =>\n isObj(o) &&\n Object.entries(o).every(\n ([k, v]) => typeof k === 'string' && check(v),\n )\n\nconst isRecordStringManifest = (\n o: unknown,\n): o is Record<string, Manifest> =>\n isRecordStringT<Manifest>(o, v => isManifest(v))\n\nconst maybePeerDependenciesMetaSet = (\n o: unknown,\n): o is Record<string, PeerDependenciesMetaValue> | undefined =>\n o === undefined ||\n isRecordStringT<PeerDependenciesMetaValue>(o, v =>\n isPeerDependenciesMetaValue(v),\n )\n\nconst maybeBoolean = (o: unknown): o is boolean =>\n o === undefined || typeof o === 'boolean'\n\nconst isPeerDependenciesMetaValue = (\n o: unknown,\n): o is PeerDependenciesMetaValue =>\n isObj(o) && maybeBoolean(o.optional)\n\nconst maybeString = (a: unknown): a is string | undefined =>\n a === undefined || typeof a === 'string'\n\nconst maybeDist = (a: unknown): a is Manifest['dist'] =>\n a === undefined || (isObj(a) && maybeString(a.tarball))\n\nexport const isManifest = (m: unknown): m is Manifest =>\n isObj(m) &&\n !Array.isArray(m) &&\n maybeString(m.name) &&\n maybeString(m.version) &&\n maybeRecordStringString(m.dependencies) &&\n maybeRecordStringString(m.devDependencies) &&\n maybeRecordStringString(m.optionalDependencies) &&\n maybeRecordStringString(m.peerDependencies) &&\n maybeRecordStringString(m.acceptDependencies) &&\n maybePeerDependenciesMetaSet(m.peerDependenciesMeta) &&\n maybeDist(m.dist)\n\nexport const isManifestRegistry = (\n m: unknown,\n): m is ManifestRegistry =>\n isManifest(m) && !!m.dist && !!m.name && !!m.version\n\nexport const asManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): Manifest => {\n if (!isManifest(m)) {\n throw error('invalid manifest', { found: m }, from ?? asManifest)\n }\n return m\n}\n\nexport const asManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): ManifestRegistry => {\n if (!isManifestRegistry(m)) {\n throw error(\n 'invalid registry manifest',\n { found: m },\n from ?? asManifestRegistry,\n )\n }\n return m\n}\n\nexport const assertManifest: (\n m: unknown,\n) => asserts m is Manifest = m => {\n asManifest(m, assertManifest)\n}\nexport const assertManifestRegistry: (\n m: unknown,\n) => asserts m is ManifestRegistry = m => {\n asManifestRegistry(m, assertManifestRegistry)\n}\n\nexport const isPackument = (p: unknown): p is Packument => {\n if (!isObj(p) || typeof p.name !== 'string') return false\n const { versions, 'dist-tags': distTags, time } = p\n return (\n isRecordStringString(distTags) &&\n isRecordStringManifest(versions) &&\n maybeRecordStringString(time) &&\n Object.values(distTags).every(v => versions[v]?.name == p.name)\n )\n}\n\nexport const asPackument = (\n p: unknown,\n from?: (...a: unknown[]) => any,\n): Packument => {\n if (!isPackument(p)) {\n throw error(\n 'invalid packument',\n { found: p },\n from ?? asPackument,\n )\n }\n return p\n}\n\nexport const assertPackument: (\n m: unknown,\n) => asserts m is Packument = m => {\n asPackument(m)\n}\n\n/**\n * Name of the package.json keys used to define different types of dependencies.\n */\nexport type DependencyTypeLong =\n | 'dependencies'\n | 'devDependencies'\n | 'optionalDependencies'\n | 'peerDependencies'\n\n/**\n * Unique keys that define different types of dependencies relationship.\n */\nexport type DependencyTypeShort =\n | 'dev'\n | 'optional'\n | 'peer'\n | 'peerOptional'\n | 'prod'\n\n/**\n * Unique keys that indicate how a new or updated dependency should be saved\n * back to a manifest.\n *\n * `'implicit'` is used to indicate that a dependency should be saved as\n * whatever type it already exists as. If the dependency does not exist,\n * then `'implicit'` is equivalent to `'prod'`, as that is the default\n * save type.\n */\nexport type DependencySaveType = DependencyTypeShort | 'implicit'\n\n/**\n * A set of the possible long dependency type names,\n * as used in `package.json` files.\n */\nexport const longDependencyTypes = new Set<DependencyTypeLong>([\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n])\n\n/**\n * A set of the short type keys used to represent dependency relationships.\n */\nexport const shortDependencyTypes = new Set<DependencyTypeShort>([\n 'prod',\n 'dev',\n 'peer',\n 'optional',\n 'peerOptional',\n])\n\n/**\n * Maps between long form names usually used in `package.json` files\n * to a corresponding short form name, used in lockfiles.\n */\nexport const dependencyTypes = new Map<\n DependencyTypeLong,\n DependencyTypeShort\n>([\n ['dependencies', 'prod'],\n ['devDependencies', 'dev'],\n ['peerDependencies', 'peer'],\n ['optionalDependencies', 'optional'],\n])\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { error } from '@vltpkg/error-cause'\n\n/** anything that can be encoded in JSON */\nexport type JSONField =\n | JSONField[]\n | boolean\n | number\n | string\n | { [k: string]: JSONField }\n | null\n | undefined\n\n/** sha512 SRI string */\nexport type Integrity = `sha512-${string}`\n\n/** SHA256 key identifier */\nexport type KeyID = `SHA256:${string}`\n\n/** The Manifest['dist'] field present in registry manifests */\nexport type Dist = {\n integrity?: Integrity\n shasum?: string\n tarball?: string\n fileCount?: number\n unpackedSize?: number\n signatures?: {\n keyid: KeyID\n sig: string\n }[]\n}\n\n/** An object used to mark some peerDeps as optional */\nexport type PeerDependenciesMetaValue = {\n optional?: boolean\n}\n\n// Don't use Record here since TS cant do circular references with that\n// https://github.com/microsoft/TypeScript/issues/41164#issuecomment-1427073368\nexport type ConditionalValueObject = {\n [k: string]: ConditionalValue\n}\n\nexport type ConditionalValue =\n | ConditionalValue[]\n | ConditionalValueObject\n | string\n | null\n\nexport type ExportsSubpaths = {\n [path in '.' | `./${string}`]?: ConditionalValue\n}\n\nexport type Exports =\n | Exclude<ConditionalValue, null>\n | ExportsSubpaths\n\nexport type Imports = Record<`#${string}`, ConditionalValue>\n\nexport type FundingEntry = string | { url: string }\nexport type Funding = FundingEntry | FundingEntry[]\n\nexport type Person =\n | string\n | {\n name: string\n url?: string\n email?: string\n }\n\nexport type Repository =\n | string\n | {\n type: string\n url: string\n }\n\nexport type Bugs =\n | string\n | {\n url?: string\n email?: string\n }\n\nexport type Manifest = {\n /** The name of the package. optional because {} is a valid package.json */\n name?: string\n /** The version of the package. optional because {} is a valid package.json */\n version?: string\n /** production dependencies, name:specifier */\n dependencies?: Record<string, string>\n /** development dependencies, name:specifier */\n devDependencies?: Record<string, string>\n /** optional dependencies, name:specifier */\n optionalDependencies?: Record<string, string>\n /** peer dependencies, name:specifier */\n peerDependencies?: Record<string, string>\n /** peer dependencies marked as optional */\n peerDependenciesMeta?: Record<string, PeerDependenciesMetaValue>\n /** dependency ranges that are acceptable, but not forced */\n acceptDependencies?: Record<string, string>\n /** names of dependencies included in the package tarball */\n bundleDependencies?: string[]\n /** a message indicating that this is not to be used */\n deprecated?: string\n /** executable built and linked by this package */\n bin?: Record<string, string> | string\n /** run-script actions for this package */\n scripts?: Record<string, string>\n /** supported run-time platforms this package can run on */\n engines?: Record<string, string>\n /** supported operating systems this package can run on */\n os?: string[] | string\n /** supported CPU architectures this package can run on */\n cpu?: string[] | string\n /** URLs that can be visited to fund this project */\n funding?: Funding\n /** The homepage of the repository */\n homepage?: string\n /**\n * Only present in Manifests served by a registry. Contains information\n * about the artifact served for this package release.\n */\n dist?: Dist\n /** a short description of the package */\n description?: string\n /** search keywords */\n keywords?: string[]\n /** where to go to file issues */\n bugs?: Bugs\n /** where the development happens */\n repository?: Repository\n /** the main module, if exports['.'] is not set */\n main?: string\n /** named subpath exports */\n exports?: Exports\n /** named #identifier imports */\n imports?: Imports\n /**\n * the HEAD of the git repo this was published from\n * only present in published packages\n */\n gitHead?: string\n /** whether the package is private */\n private?: boolean\n /** whether this is ESM or CommonJS by default */\n type?: 'commonjs' | 'module'\n /** npm puts this on published manifests */\n gypfile?: boolean\n /** the author of a package */\n author?: Person\n /** contributors to the package */\n contributors?: Person[]\n /** the license of the package */\n license?: string\n}\n\nexport type ManifestRegistry = Manifest &\n Required<Pick<Manifest, 'name' | 'version' | 'dist'>>\n\nexport type Packument = {\n name: string\n 'dist-tags': Record<string, string>\n versions: Record<string, Manifest>\n modified?: string\n time?: Record<string, string>\n readme?: string\n}\n\nexport type RefType = 'branch' | 'head' | 'other' | 'pull' | 'tag'\n\n/**\n * A representation of a given remote ref in a {@link RevDoc} object.\n */\nexport type RevDocEntry = Omit<Manifest, 'type'> &\n Required<Pick<Manifest, 'version'>> & {\n /** sha this references */\n sha: string\n /** ref as passed git locally */\n ref: string\n /** canonical full ref, like `refs/tags/blahblah` */\n rawRef: string\n /** what type of ref this is: 'branch', 'tag', etc. */\n type: RefType\n }\n\n/**\n * An object kind of resembling a packument, but about a git repo.\n */\nexport type RevDoc = Omit<Packument, 'versions'> & {\n /** all semver-looking tags go in this record */\n versions: Record<string, RevDocEntry>\n /** all named things that can be cloned down remotely */\n refs: Record<string, RevDocEntry>\n /** all named shas referenced above */\n shas: Record<string, string[]>\n}\n\nexport const integrityRE = /^sha512-[a-zA-Z0-9/+]{86}==$/\nexport const isIntegrity = (i: unknown): i is Integrity =>\n typeof i === 'string' && integrityRE.test(i)\n\nexport const asIntegrity = (i: unknown): Integrity => {\n if (!isIntegrity(i)) {\n throw error(\n 'invalid integrity',\n {\n found: i,\n wanted: integrityRE,\n },\n asIntegrity,\n )\n }\n return i\n}\n\nexport const assertIntegrity: (\n i: unknown,\n) => asserts i is Integrity = i => {\n asIntegrity(i)\n}\n\nexport const keyIDRE = /^SHA256:[a-zA-Z0-9/+]{43}$/\nexport const isKeyID = (k: unknown): k is KeyID =>\n typeof k === 'string' && keyIDRE.test(k)\n\nexport const asKeyID = (k: unknown): KeyID => {\n if (!isKeyID(k)) {\n throw error(\n 'invalid key ID',\n {\n found: k,\n wanted: keyIDRE,\n },\n asKeyID,\n )\n }\n return k\n}\n\nexport const assertKeyID: (k: unknown) => asserts k is KeyID = k => {\n asKeyID(k)\n}\n\n/**\n * Convert an unknown value to an error.\n */\nexport const asError = (\n er: unknown,\n fallbackMessage = 'Unknown error',\n): Error =>\n er instanceof Error ? er : new Error(String(er) || fallbackMessage)\n\n/**\n * Check if a value is an error.\n */\nexport const isError = (er: unknown): er is Error =>\n er instanceof Error\n\n/**\n * Check if an error has a cause property.\n */\nexport const isErrorWithCause = (\n er: unknown,\n): er is Error & { cause: unknown } => isError(er) && 'cause' in er\n\n/**\n * Check if an unknown value is a plain object.\n */\nexport const isObject = (v: unknown): v is Record<string, unknown> =>\n !!v &&\n typeof v === 'object' &&\n (v.constructor === Object ||\n (v.constructor as unknown) === undefined)\n\nexport const maybeRecordStringString = (\n o: unknown,\n): o is Record<string, string> | undefined =>\n o === undefined || isRecordStringString(o)\n\nexport const isRecordStringString = (\n o: unknown,\n): o is Record<string, string> =>\n isRecordStringT<string>(o, s => typeof s === 'string')\n\nexport const assertRecordStringString: (o: unknown) => void = (\n o: unknown,\n): asserts o is Record<string, string> =>\n assertRecordStringT<string>(\n o,\n s => typeof s === 'string',\n 'Record<string, string>',\n )\n\nexport const isRecordStringT = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n): o is Record<string, T> =>\n isObject(o) &&\n Object.entries(o).every(\n ([k, v]) => typeof k === 'string' && check(v),\n )\n\nexport const assertRecordStringT: <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n wanted: string,\n) => asserts o is Record<string, T> = <T>(\n o: unknown,\n check: (o: unknown) => o is T,\n /** a type description, like 'Record<string, Record<string, string>>' */\n wanted: string,\n): asserts o is Record<string, T> => {\n if (!isRecordStringT(o, check)) {\n throw error('Invalid record', {\n found: o,\n wanted,\n })\n }\n}\n\nexport const isRecordStringManifest = (\n o: unknown,\n): o is Record<string, Manifest> =>\n isRecordStringT<Manifest>(o, v => isManifest(v))\n\nexport const maybePeerDependenciesMetaSet = (\n o: unknown,\n): o is Record<string, PeerDependenciesMetaValue> | undefined =>\n o === undefined ||\n isRecordStringT<PeerDependenciesMetaValue>(o, v =>\n isPeerDependenciesMetaValue(v),\n )\n\nexport const maybeBoolean = (o: unknown): o is boolean =>\n o === undefined || typeof o === 'boolean'\n\nexport const isPeerDependenciesMetaValue = (\n o: unknown,\n): o is PeerDependenciesMetaValue =>\n isObject(o) && maybeBoolean(o.optional)\n\nexport const maybeString = (a: unknown): a is string | undefined =>\n a === undefined || typeof a === 'string'\n\nexport const maybeDist = (a: unknown): a is Manifest['dist'] =>\n a === undefined || (isObject(a) && maybeString(a.tarball))\n\nexport const isManifest = (m: unknown): m is Manifest =>\n isObject(m) &&\n !Array.isArray(m) &&\n maybeString(m.name) &&\n maybeString(m.version) &&\n maybeRecordStringString(m.dependencies) &&\n maybeRecordStringString(m.devDependencies) &&\n maybeRecordStringString(m.optionalDependencies) &&\n maybeRecordStringString(m.peerDependencies) &&\n maybeRecordStringString(m.acceptDependencies) &&\n maybePeerDependenciesMetaSet(m.peerDependenciesMeta) &&\n maybeDist(m.dist)\n\nexport const isManifestRegistry = (\n m: unknown,\n): m is ManifestRegistry =>\n isManifest(m) && !!m.dist && !!m.name && !!m.version\n\nexport const asManifest = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): Manifest => {\n if (!isManifest(m)) {\n throw error('invalid manifest', { found: m }, from ?? asManifest)\n }\n return m\n}\n\nexport const asManifestRegistry = (\n m: unknown,\n from?: (...a: unknown[]) => any,\n): ManifestRegistry => {\n if (!isManifestRegistry(m)) {\n throw error(\n 'invalid registry manifest',\n { found: m },\n from ?? asManifestRegistry,\n )\n }\n return m\n}\n\nexport const assertManifest: (\n m: unknown,\n) => asserts m is Manifest = m => {\n asManifest(m, assertManifest)\n}\nexport const assertManifestRegistry: (\n m: unknown,\n) => asserts m is ManifestRegistry = m => {\n asManifestRegistry(m, assertManifestRegistry)\n}\n\nexport const isPackument = (p: unknown): p is Packument => {\n if (!isObject(p) || typeof p.name !== 'string') return false\n const { versions, 'dist-tags': distTags, time } = p\n return (\n isRecordStringString(distTags) &&\n isRecordStringManifest(versions) &&\n maybeRecordStringString(time) &&\n Object.values(distTags).every(v => versions[v]?.name == p.name)\n )\n}\n\nexport const asPackument = (\n p: unknown,\n from?: (...a: unknown[]) => any,\n): Packument => {\n if (!isPackument(p)) {\n throw error(\n 'invalid packument',\n { found: p },\n from ?? asPackument,\n )\n }\n return p\n}\n\nexport const assertPackument: (\n m: unknown,\n) => asserts m is Packument = m => {\n asPackument(m)\n}\n\n/**\n * Name of the package.json keys used to define different types of dependencies.\n */\nexport type DependencyTypeLong =\n | 'dependencies'\n | 'devDependencies'\n | 'optionalDependencies'\n | 'peerDependencies'\n\n/**\n * Unique keys that define different types of dependencies relationship.\n */\nexport type DependencyTypeShort =\n | 'dev'\n | 'optional'\n | 'peer'\n | 'peerOptional'\n | 'prod'\n\n/**\n * Unique keys that indicate how a new or updated dependency should be saved\n * back to a manifest.\n *\n * `'implicit'` is used to indicate that a dependency should be saved as\n * whatever type it already exists as. If the dependency does not exist,\n * then `'implicit'` is equivalent to `'prod'`, as that is the default\n * save type.\n */\nexport type DependencySaveType = DependencyTypeShort | 'implicit'\n\n/**\n * A set of the possible long dependency type names,\n * as used in `package.json` files.\n */\nexport const longDependencyTypes = new Set<DependencyTypeLong>([\n 'dependencies',\n 'devDependencies',\n 'peerDependencies',\n 'optionalDependencies',\n])\n\n/**\n * A set of the short type keys used to represent dependency relationships.\n */\nexport const shortDependencyTypes = new Set<DependencyTypeShort>([\n 'prod',\n 'dev',\n 'peer',\n 'optional',\n 'peerOptional',\n])\n\n/**\n * Maps between long form names usually used in `package.json` files\n * to a corresponding short form name, used in lockfiles.\n */\nexport const dependencyTypes = new Map<\n DependencyTypeLong,\n DependencyTypeShort\n>([\n ['dependencies', 'prod'],\n ['devDependencies', 'dev'],\n ['peerDependencies', 'peer'],\n ['optionalDependencies', 'optional'],\n])\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vltpkg/types",
3
3
  "description": "definitions for some of vlt's core types",
4
- "version": "0.0.0-12",
4
+ "version": "0.0.0-14",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/vltpkg/vltpkg.git",
@@ -19,18 +19,18 @@
19
19
  }
20
20
  },
21
21
  "dependencies": {
22
- "@vltpkg/error-cause": "0.0.0-12"
22
+ "@vltpkg/error-cause": "0.0.0-14"
23
23
  },
24
24
  "devDependencies": {
25
- "@eslint/js": "^9.25.1",
26
- "@types/node": "^22.15.3",
27
- "eslint": "^9.25.1",
25
+ "@eslint/js": "^9.28.0",
26
+ "@types/node": "^22.15.29",
27
+ "eslint": "^9.28.0",
28
28
  "prettier": "^3.5.3",
29
29
  "tap": "^21.1.0",
30
30
  "tshy": "^3.0.2",
31
31
  "typedoc": "~0.27.9",
32
32
  "typescript": "5.7.3",
33
- "typescript-eslint": "^8.31.1"
33
+ "typescript-eslint": "^8.33.1"
34
34
  },
35
35
  "license": "BSD-2-Clause-Patent",
36
36
  "engines": {