@ms-cloudpack/package-utilities 12.3.1 → 12.3.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.
- package/lib/packageDefinitions/PackageDefinitions.d.ts.map +1 -1
- package/lib/packageDefinitions/PackageDefinitions.js +1 -2
- package/lib/packageDefinitions/PackageDefinitions.js.map +1 -1
- package/package.json +1 -1
- package/lib/packageDefinitions/getApiServerTransform.d.ts +0 -8
- package/lib/packageDefinitions/getApiServerTransform.d.ts.map +0 -1
- package/lib/packageDefinitions/getApiServerTransform.js +0 -20
- package/lib/packageDefinitions/getApiServerTransform.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageDefinitions.d.ts","sourceRoot":"","sources":["../../src/packageDefinitions/PackageDefinitions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,2BAA2B,EAE3B,iCAAiC,EACjC,uBAAuB,EACvB,WAAW,EACX,mCAAmC,EACpC,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"PackageDefinitions.d.ts","sourceRoot":"","sources":["../../src/packageDefinitions/PackageDefinitions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,eAAe,EACf,2BAA2B,EAE3B,iCAAiC,EACjC,uBAAuB,EACvB,WAAW,EACX,mCAAmC,EACpC,MAAM,4BAA4B,CAAC;AAMpC,MAAM,WAAW,yBAAyB;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,iCAAiC,EAAE,CAAC;CAC1D;AAkCD,qBAAa,kBAAmB,YAAW,uBAAuB;IAChE,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,uBAAuB,CAAmC;IAClE,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,mBAAmB,CAA2C;IAEtE;;;;OAIG;gBACS,OAAO,GAAE,yBAA8B;IAO7C,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,2BAA2B,GAAG,OAAO,CAAC,WAAW,CAAC;IAQrF,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;IAkD9G,iBAAiB,CAAC,OAAO,EAAE,iCAAiC,GAAG,IAAI;IAOnE,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAYvE,GAAG,CACD,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,WAAW,EACvB,OAAO,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,mBAAmB,CAAC,GAC/D,IAAI;IAYP,MAAM,CAAC,KAAK,EAAE,mCAAmC,GAAG,IAAI;IAKxD,cAAc,IAAI,mCAAmC;cAOrC,YAAY,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAIvF"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import path from 'path';
|
|
2
2
|
import { cloneJson, readJson } from '@ms-cloudpack/json-utilities';
|
|
3
3
|
import { getNonSemverTransform } from './getNonSemverTransform.js';
|
|
4
|
-
import { getApiServerTransform } from './getApiServerTransform.js';
|
|
5
4
|
import { slash } from '@ms-cloudpack/path-string-parsing';
|
|
6
5
|
import { getTypesTransform } from './getTypesTransform.js';
|
|
7
6
|
/**
|
|
8
7
|
* `nonSemverTransform` has state defined when the function is called, so we need a wrapper function
|
|
9
8
|
* which returns new transforms to ensure that state is cleared when resetting.
|
|
10
9
|
*/
|
|
11
|
-
const getDefaultTransforms = () => [
|
|
10
|
+
const getDefaultTransforms = () => [getTypesTransform(), getNonSemverTransform()];
|
|
12
11
|
/**
|
|
13
12
|
* Only copy these keys from package.json, to reduce the amount cloned before applying transforms.
|
|
14
13
|
* (It's an object for better typings and faster access.)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PackageDefinitions.js","sourceRoot":"","sources":["../../src/packageDefinitions/PackageDefinitions.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport type {\n CloudpackConfig,\n GetPackageDefinitionOptions,\n PackageDefinitionTransform,\n PackageDefinitionTransformFactory,\n PackageDefinitionsCache,\n PackageJson,\n SerializablePackageDefinitionsCache,\n} from '@ms-cloudpack/common-types';\nimport { cloneJson, readJson } from '@ms-cloudpack/json-utilities';\nimport { getNonSemverTransform } from './getNonSemverTransform.js';\nimport { getApiServerTransform } from './getApiServerTransform.js';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { getTypesTransform } from './getTypesTransform.js';\n\nexport interface PackageDefinitionsOptions {\n /**\n * Config object to pass to transforms. When `reset` is called with a new value, the transforms\n * will be transforms will be re-created using the new config.\n */\n config?: CloudpackConfig;\n /**\n * Transform factories to register on initialization.\n */\n transformFactories?: PackageDefinitionTransformFactory[];\n}\n\n/**\n * `nonSemverTransform` has state defined when the function is called, so we need a wrapper function\n * which returns new transforms to ensure that state is cleared when resetting.\n */\nconst getDefaultTransforms = () => [getApiServerTransform(), getTypesTransform(), getNonSemverTransform()];\n\n/**\n * Only copy these keys from package.json, to reduce the amount cloned before applying transforms.\n * (It's an object for better typings and faster access.)\n *\n * NOTE: If you add any new keys to PackageJson, they must be added here too.\n */\nconst copyPackageJsonKeys: Record<keyof PackageJson, true> = {\n name: true,\n version: true,\n description: true,\n dependencies: true,\n devDependencies: true,\n peerDependencies: true,\n peerDependenciesMeta: true,\n optionalDependencies: true,\n bundledDependencies: true,\n bundleDependencies: true,\n type: true,\n main: true,\n module: true,\n browser: true,\n exports: true,\n resolutions: true,\n cloudpack: true,\n};\n\nexport class PackageDefinitions implements PackageDefinitionsCache {\n private _definitions: Record<string, PackageJson | undefined> = {};\n private _transformedDefinitions: Record<string, PackageJson> = {};\n private _config: CloudpackConfig | undefined;\n private _transforms: PackageDefinitionTransform[] = [];\n private _transformFactories: PackageDefinitionTransformFactory[] = [];\n\n /**\n * **WARNING**: Cloudpack code (including tests) outside of `@ms-cloudpack/package-utilities`\n * should use `createPackageDefinitions` from `@ms-cloudpack/config` instead. That wrapper adds\n * some transforms which are essential for applying settings from the cloudpack config.\n */\n constructor(options: PackageDefinitionsOptions = {}) {\n const { config, transformFactories } = options;\n this._transformFactories = transformFactories || [];\n\n this.reset({ newConfig: config, force: true });\n }\n\n async get(packagePath: string, options?: GetPackageDefinitionOptions): Promise<PackageJson> {\n const definition = await this.tryGet(packagePath, options);\n if (!definition) {\n throw new Error(`package.json not found at \"${packagePath}\"`);\n }\n return definition;\n }\n\n async tryGet(packagePath: string, options: GetPackageDefinitionOptions = {}): Promise<PackageJson | undefined> {\n const { refresh, disableTransforms, importerContext } = options;\n\n // Normalize the path used for caching to ensure consistency and avoid duplicates.\n const normalizedPath = slash(packagePath);\n\n if (refresh) {\n delete this._definitions[normalizedPath];\n delete this._transformedDefinitions[normalizedPath];\n }\n\n // If the definition is not in the cache, read it from disk (or from the fixture).\n // (If the definition was invalid JSON or not found, undefined is cached.)\n let definition = this._definitions[normalizedPath];\n if (!(normalizedPath in this._definitions)) {\n definition = await this._readPackage(normalizedPath);\n this._definitions[normalizedPath] = definition;\n\n if (definition) {\n definition.name ??= `unknown-${packagePath.replace(/[^\\w-]/g, '-')}`;\n definition.version ??= '0.0.0-unknown';\n }\n }\n\n if (disableTransforms || !definition) {\n return definition;\n }\n\n // If we don't want to skip the transform, transform the definition.\n let transformedDefinition = this._transformedDefinitions[normalizedPath];\n if (!transformedDefinition) {\n // Clone the definition (only keys we care about) so we don't accidentally modify the original.\n transformedDefinition = cloneJson(definition, { onlyKeys: copyPackageJsonKeys });\n\n for (const transform of this._transforms) {\n transformedDefinition =\n (await transform({\n definition: transformedDefinition,\n packagePath: normalizedPath,\n packages: this,\n importerContext,\n })) || transformedDefinition;\n }\n\n this._transformedDefinitions[normalizedPath] = transformedDefinition;\n }\n\n return transformedDefinition;\n }\n\n registerTransform(factory: PackageDefinitionTransformFactory): void {\n this._transformFactories.push(factory);\n this._transforms.push(factory(this._config));\n\n this.reset();\n }\n\n reset(options?: { newConfig?: CloudpackConfig; force?: boolean }): void {\n this._definitions = {};\n this._transformedDefinitions = {};\n\n const { newConfig, force } = options || {};\n\n if (newConfig || force) {\n this._config = newConfig;\n this._transforms = [...getDefaultTransforms(), ...this._transformFactories.map((factory) => factory(newConfig))];\n }\n }\n\n set(\n packagePath: string,\n definition: PackageJson,\n options?: Pick<GetPackageDefinitionOptions, 'disableTransforms'>,\n ): void {\n const { disableTransforms } = options || {};\n // Normalize the path used for caching to ensure consistency.\n const normalizedPath = slash(packagePath);\n // Delete the transformed definition if it exists, so we don't have stale data.\n if (disableTransforms) {\n delete this._transformedDefinitions[normalizedPath];\n }\n const record = disableTransforms ? this._definitions : this._transformedDefinitions;\n record[normalizedPath] = definition;\n }\n\n extend(input: SerializablePackageDefinitionsCache): void {\n Object.assign(this._definitions, input.definitions);\n Object.assign(this._transformedDefinitions, input.transformedDefinitions);\n }\n\n toSerializable(): SerializablePackageDefinitionsCache {\n return {\n definitions: this._definitions,\n transformedDefinitions: this._transformedDefinitions,\n };\n }\n\n protected async _readPackage(normalizedPath: string): Promise<PackageJson | undefined> {\n // `verbose` logs if the file exists but isn't valid JSON (or can't be read for some reason)\n return readJson<PackageJson>(path.join(normalizedPath, 'package.json'), { verbose: true });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"PackageDefinitions.js","sourceRoot":"","sources":["../../src/packageDefinitions/PackageDefinitions.ts"],"names":[],"mappings":"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","sourcesContent":["import path from 'path';\nimport type {\n CloudpackConfig,\n GetPackageDefinitionOptions,\n PackageDefinitionTransform,\n PackageDefinitionTransformFactory,\n PackageDefinitionsCache,\n PackageJson,\n SerializablePackageDefinitionsCache,\n} from '@ms-cloudpack/common-types';\nimport { cloneJson, readJson } from '@ms-cloudpack/json-utilities';\nimport { getNonSemverTransform } from './getNonSemverTransform.js';\nimport { slash } from '@ms-cloudpack/path-string-parsing';\nimport { getTypesTransform } from './getTypesTransform.js';\n\nexport interface PackageDefinitionsOptions {\n /**\n * Config object to pass to transforms. When `reset` is called with a new value, the transforms\n * will be transforms will be re-created using the new config.\n */\n config?: CloudpackConfig;\n /**\n * Transform factories to register on initialization.\n */\n transformFactories?: PackageDefinitionTransformFactory[];\n}\n\n/**\n * `nonSemverTransform` has state defined when the function is called, so we need a wrapper function\n * which returns new transforms to ensure that state is cleared when resetting.\n */\nconst getDefaultTransforms = () => [getTypesTransform(), getNonSemverTransform()];\n\n/**\n * Only copy these keys from package.json, to reduce the amount cloned before applying transforms.\n * (It's an object for better typings and faster access.)\n *\n * NOTE: If you add any new keys to PackageJson, they must be added here too.\n */\nconst copyPackageJsonKeys: Record<keyof PackageJson, true> = {\n name: true,\n version: true,\n description: true,\n dependencies: true,\n devDependencies: true,\n peerDependencies: true,\n peerDependenciesMeta: true,\n optionalDependencies: true,\n bundledDependencies: true,\n bundleDependencies: true,\n type: true,\n main: true,\n module: true,\n browser: true,\n exports: true,\n resolutions: true,\n cloudpack: true,\n};\n\nexport class PackageDefinitions implements PackageDefinitionsCache {\n private _definitions: Record<string, PackageJson | undefined> = {};\n private _transformedDefinitions: Record<string, PackageJson> = {};\n private _config: CloudpackConfig | undefined;\n private _transforms: PackageDefinitionTransform[] = [];\n private _transformFactories: PackageDefinitionTransformFactory[] = [];\n\n /**\n * **WARNING**: Cloudpack code (including tests) outside of `@ms-cloudpack/package-utilities`\n * should use `createPackageDefinitions` from `@ms-cloudpack/config` instead. That wrapper adds\n * some transforms which are essential for applying settings from the cloudpack config.\n */\n constructor(options: PackageDefinitionsOptions = {}) {\n const { config, transformFactories } = options;\n this._transformFactories = transformFactories || [];\n\n this.reset({ newConfig: config, force: true });\n }\n\n async get(packagePath: string, options?: GetPackageDefinitionOptions): Promise<PackageJson> {\n const definition = await this.tryGet(packagePath, options);\n if (!definition) {\n throw new Error(`package.json not found at \"${packagePath}\"`);\n }\n return definition;\n }\n\n async tryGet(packagePath: string, options: GetPackageDefinitionOptions = {}): Promise<PackageJson | undefined> {\n const { refresh, disableTransforms, importerContext } = options;\n\n // Normalize the path used for caching to ensure consistency and avoid duplicates.\n const normalizedPath = slash(packagePath);\n\n if (refresh) {\n delete this._definitions[normalizedPath];\n delete this._transformedDefinitions[normalizedPath];\n }\n\n // If the definition is not in the cache, read it from disk (or from the fixture).\n // (If the definition was invalid JSON or not found, undefined is cached.)\n let definition = this._definitions[normalizedPath];\n if (!(normalizedPath in this._definitions)) {\n definition = await this._readPackage(normalizedPath);\n this._definitions[normalizedPath] = definition;\n\n if (definition) {\n definition.name ??= `unknown-${packagePath.replace(/[^\\w-]/g, '-')}`;\n definition.version ??= '0.0.0-unknown';\n }\n }\n\n if (disableTransforms || !definition) {\n return definition;\n }\n\n // If we don't want to skip the transform, transform the definition.\n let transformedDefinition = this._transformedDefinitions[normalizedPath];\n if (!transformedDefinition) {\n // Clone the definition (only keys we care about) so we don't accidentally modify the original.\n transformedDefinition = cloneJson(definition, { onlyKeys: copyPackageJsonKeys });\n\n for (const transform of this._transforms) {\n transformedDefinition =\n (await transform({\n definition: transformedDefinition,\n packagePath: normalizedPath,\n packages: this,\n importerContext,\n })) || transformedDefinition;\n }\n\n this._transformedDefinitions[normalizedPath] = transformedDefinition;\n }\n\n return transformedDefinition;\n }\n\n registerTransform(factory: PackageDefinitionTransformFactory): void {\n this._transformFactories.push(factory);\n this._transforms.push(factory(this._config));\n\n this.reset();\n }\n\n reset(options?: { newConfig?: CloudpackConfig; force?: boolean }): void {\n this._definitions = {};\n this._transformedDefinitions = {};\n\n const { newConfig, force } = options || {};\n\n if (newConfig || force) {\n this._config = newConfig;\n this._transforms = [...getDefaultTransforms(), ...this._transformFactories.map((factory) => factory(newConfig))];\n }\n }\n\n set(\n packagePath: string,\n definition: PackageJson,\n options?: Pick<GetPackageDefinitionOptions, 'disableTransforms'>,\n ): void {\n const { disableTransforms } = options || {};\n // Normalize the path used for caching to ensure consistency.\n const normalizedPath = slash(packagePath);\n // Delete the transformed definition if it exists, so we don't have stale data.\n if (disableTransforms) {\n delete this._transformedDefinitions[normalizedPath];\n }\n const record = disableTransforms ? this._definitions : this._transformedDefinitions;\n record[normalizedPath] = definition;\n }\n\n extend(input: SerializablePackageDefinitionsCache): void {\n Object.assign(this._definitions, input.definitions);\n Object.assign(this._transformedDefinitions, input.transformedDefinitions);\n }\n\n toSerializable(): SerializablePackageDefinitionsCache {\n return {\n definitions: this._definitions,\n transformedDefinitions: this._transformedDefinitions,\n };\n }\n\n protected async _readPackage(normalizedPath: string): Promise<PackageJson | undefined> {\n // `verbose` logs if the file exists but isn't valid JSON (or can't be read for some reason)\n return readJson<PackageJson>(path.join(normalizedPath, 'package.json'), { verbose: true });\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import type { PackageDefinitionTransform } from '@ms-cloudpack/common-types';
|
|
2
|
-
/**
|
|
3
|
-
* Returns a transform that will update the dependencies of the `@ms-cloudpack/api-server` package
|
|
4
|
-
* to only include the browser dependencies. This reduces the resolve map packages by removing
|
|
5
|
-
* around ~500 server dependencies.
|
|
6
|
-
*/
|
|
7
|
-
export declare function getApiServerTransform(): PackageDefinitionTransform;
|
|
8
|
-
//# sourceMappingURL=getApiServerTransform.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getApiServerTransform.d.ts","sourceRoot":"","sources":["../../src/packageDefinitions/getApiServerTransform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAI7E;;;;GAIG;AACH,wBAAgB,qBAAqB,IAAI,0BAA0B,CAalE"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
const apiServerBrowserDeps = ['@ms-cloudpack/data-bus', '@ms-cloudpack/path-string-parsing', '@trpc/client', 'zod'];
|
|
2
|
-
/**
|
|
3
|
-
* Returns a transform that will update the dependencies of the `@ms-cloudpack/api-server` package
|
|
4
|
-
* to only include the browser dependencies. This reduces the resolve map packages by removing
|
|
5
|
-
* around ~500 server dependencies.
|
|
6
|
-
*/
|
|
7
|
-
export function getApiServerTransform() {
|
|
8
|
-
return ({ definition }) => {
|
|
9
|
-
if (definition.name !== '@ms-cloudpack/api-server' || !definition.dependencies) {
|
|
10
|
-
return undefined;
|
|
11
|
-
}
|
|
12
|
-
for (const dep of Object.keys(definition.dependencies)) {
|
|
13
|
-
if (!apiServerBrowserDeps.includes(dep)) {
|
|
14
|
-
delete definition.dependencies[dep];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return definition;
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=getApiServerTransform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getApiServerTransform.js","sourceRoot":"","sources":["../../src/packageDefinitions/getApiServerTransform.ts"],"names":[],"mappings":"AAEA,MAAM,oBAAoB,GAAG,CAAC,wBAAwB,EAAE,mCAAmC,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;AAEpH;;;;GAIG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACxB,IAAI,UAAU,CAAC,IAAI,KAAK,0BAA0B,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;YAC/E,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxC,OAAO,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC","sourcesContent":["import type { PackageDefinitionTransform } from '@ms-cloudpack/common-types';\n\nconst apiServerBrowserDeps = ['@ms-cloudpack/data-bus', '@ms-cloudpack/path-string-parsing', '@trpc/client', 'zod'];\n\n/**\n * Returns a transform that will update the dependencies of the `@ms-cloudpack/api-server` package\n * to only include the browser dependencies. This reduces the resolve map packages by removing\n * around ~500 server dependencies.\n */\nexport function getApiServerTransform(): PackageDefinitionTransform {\n return ({ definition }) => {\n if (definition.name !== '@ms-cloudpack/api-server' || !definition.dependencies) {\n return undefined;\n }\n\n for (const dep of Object.keys(definition.dependencies)) {\n if (!apiServerBrowserDeps.includes(dep)) {\n delete definition.dependencies[dep];\n }\n }\n return definition;\n };\n}\n"]}
|