@r5v/mongoose-paginate 1.0.17 → 1.0.18
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/README.md +42 -0
- package/dist/README.md +42 -0
- package/dist/aggregationPagingQuery.d.ts +1 -1
- package/dist/aggregationPagingQuery.d.ts.map +1 -1
- package/dist/aggregationPagingQuery.js +1 -0
- package/dist/package.json +1 -1
- package/dist/pagingQuery.d.ts +1 -1
- package/dist/pagingQuery.d.ts.map +1 -1
- package/dist/pagingQuery.js +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -312,6 +312,48 @@ $ yarn run start
|
|
|
312
312
|
9. Apply pagination (`$skip`, `$limit`) and options
|
|
313
313
|
|
|
314
314
|
|
|
315
|
+
## Versioning and releasing
|
|
316
|
+
|
|
317
|
+
The package follows [semver](https://semver.org). The version in `package.json` is the only version; it is bumped in its own commit (`chore: bump version to X.Y.Z`) and every release gets an entry in the changelog below.
|
|
318
|
+
|
|
319
|
+
**What each part means**
|
|
320
|
+
|
|
321
|
+
| Bump | When | Examples |
|
|
322
|
+
|:--|:--|:--|
|
|
323
|
+
| patch `1.0.x` | Bug fixes, docs, and type fixes that do not narrow what consumers can already write | `exec()` returns `Promise<any>` again; a regex bug in populate parsing |
|
|
324
|
+
| minor `1.x.0` | New options, parameters, exports or utilities; anything additive | a new `allowedOperators` option |
|
|
325
|
+
| major `x.0.0` | Anything that can break a consumer's build **or** behaviour | removing a parameter (`$includes`), changing a default, raising the minimum `mongoose` or Node version, **narrowing a public type** (`any` to `unknown`, a stricter argument type) |
|
|
326
|
+
|
|
327
|
+
Types are part of the public API. A change that makes a consumer's TypeScript stop compiling is a breaking change even if the runtime is identical. Consumers pin `^1.0.x`, so a breaking change shipped as a patch reaches them on the next install.
|
|
328
|
+
|
|
329
|
+
**Release steps** (from a clean `main`, after the PR is merged)
|
|
330
|
+
|
|
331
|
+
```text
|
|
332
|
+
$ git checkout main && git pull
|
|
333
|
+
$ npm version patch --no-git-tag-version # or: minor / major
|
|
334
|
+
$ git commit -am "chore: bump version to X.Y.Z"
|
|
335
|
+
$ git push
|
|
336
|
+
$ npm install
|
|
337
|
+
$ npm test # must be green
|
|
338
|
+
$ npm run build # prebuild clears dist/, postbuild copies package.json + README into it
|
|
339
|
+
$ npm pack --dry-run # check the file list: package.json, README.md, dist/**
|
|
340
|
+
$ npm login # once per machine; opens the browser
|
|
341
|
+
$ npm publish --access public # add --otp=123456 if npm asks for a code
|
|
342
|
+
$ npm view @r5v/mongoose-paginate version # confirm X.Y.Z is live
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Notes:
|
|
346
|
+
- Publish only after `npm run build`. There is no `prepublishOnly` script, and `dist/` is what consumers get (`files` in `package.json`).
|
|
347
|
+
- Update the changelog in the same PR as the change, under the version it will ship as.
|
|
348
|
+
- Before a release that touches types or parsing, run the consuming app (`theshopkeeper`) against the built `dist/`: copy it over `node_modules/@r5v/mongoose-paginate/dist`, then run its `tsc` and tests. The 1.0.14 narrowing of `exec()` to `unknown` was only caught this way.
|
|
349
|
+
- A published version cannot be changed or re-used. If a release is wrong, publish a fixed patch and `npm deprecate @r5v/mongoose-paginate@X.Y.Z "use X.Y.Z+1"`.
|
|
350
|
+
- Optional: `git tag vX.Y.Z && git push --tags` after publishing. There are no tags in the repository yet.
|
|
351
|
+
|
|
352
|
+
## Changelog
|
|
353
|
+
|
|
354
|
+
### 1.0.18
|
|
355
|
+
- **Fixed `exec()` return type** - `PagingQuery.exec()` and `AggregationPagingQuery.exec()` return `Promise<any>` again. 1.0.14 through 1.0.17 narrowed it to `Promise<unknown>`, which stopped consumers that use the result (for example `res.send(await query.exec())` typed against a response body) from compiling. Runtime behaviour is unchanged.
|
|
356
|
+
|
|
315
357
|
### 1.0.17
|
|
316
358
|
- **Moved mongoose to peerDependencies** - Reduces bundle size for consumers who already have mongoose installed
|
|
317
359
|
- Supports mongoose >= 8.0.0 (tested with 8.16.0 and 9.1.4)
|
package/dist/README.md
CHANGED
|
@@ -312,6 +312,48 @@ $ yarn run start
|
|
|
312
312
|
9. Apply pagination (`$skip`, `$limit`) and options
|
|
313
313
|
|
|
314
314
|
|
|
315
|
+
## Versioning and releasing
|
|
316
|
+
|
|
317
|
+
The package follows [semver](https://semver.org). The version in `package.json` is the only version; it is bumped in its own commit (`chore: bump version to X.Y.Z`) and every release gets an entry in the changelog below.
|
|
318
|
+
|
|
319
|
+
**What each part means**
|
|
320
|
+
|
|
321
|
+
| Bump | When | Examples |
|
|
322
|
+
|:--|:--|:--|
|
|
323
|
+
| patch `1.0.x` | Bug fixes, docs, and type fixes that do not narrow what consumers can already write | `exec()` returns `Promise<any>` again; a regex bug in populate parsing |
|
|
324
|
+
| minor `1.x.0` | New options, parameters, exports or utilities; anything additive | a new `allowedOperators` option |
|
|
325
|
+
| major `x.0.0` | Anything that can break a consumer's build **or** behaviour | removing a parameter (`$includes`), changing a default, raising the minimum `mongoose` or Node version, **narrowing a public type** (`any` to `unknown`, a stricter argument type) |
|
|
326
|
+
|
|
327
|
+
Types are part of the public API. A change that makes a consumer's TypeScript stop compiling is a breaking change even if the runtime is identical. Consumers pin `^1.0.x`, so a breaking change shipped as a patch reaches them on the next install.
|
|
328
|
+
|
|
329
|
+
**Release steps** (from a clean `main`, after the PR is merged)
|
|
330
|
+
|
|
331
|
+
```text
|
|
332
|
+
$ git checkout main && git pull
|
|
333
|
+
$ npm version patch --no-git-tag-version # or: minor / major
|
|
334
|
+
$ git commit -am "chore: bump version to X.Y.Z"
|
|
335
|
+
$ git push
|
|
336
|
+
$ npm install
|
|
337
|
+
$ npm test # must be green
|
|
338
|
+
$ npm run build # prebuild clears dist/, postbuild copies package.json + README into it
|
|
339
|
+
$ npm pack --dry-run # check the file list: package.json, README.md, dist/**
|
|
340
|
+
$ npm login # once per machine; opens the browser
|
|
341
|
+
$ npm publish --access public # add --otp=123456 if npm asks for a code
|
|
342
|
+
$ npm view @r5v/mongoose-paginate version # confirm X.Y.Z is live
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
Notes:
|
|
346
|
+
- Publish only after `npm run build`. There is no `prepublishOnly` script, and `dist/` is what consumers get (`files` in `package.json`).
|
|
347
|
+
- Update the changelog in the same PR as the change, under the version it will ship as.
|
|
348
|
+
- Before a release that touches types or parsing, run the consuming app (`theshopkeeper`) against the built `dist/`: copy it over `node_modules/@r5v/mongoose-paginate/dist`, then run its `tsc` and tests. The 1.0.14 narrowing of `exec()` to `unknown` was only caught this way.
|
|
349
|
+
- A published version cannot be changed or re-used. If a release is wrong, publish a fixed patch and `npm deprecate @r5v/mongoose-paginate@X.Y.Z "use X.Y.Z+1"`.
|
|
350
|
+
- Optional: `git tag vX.Y.Z && git push --tags` after publishing. There are no tags in the repository yet.
|
|
351
|
+
|
|
352
|
+
## Changelog
|
|
353
|
+
|
|
354
|
+
### 1.0.18
|
|
355
|
+
- **Fixed `exec()` return type** - `PagingQuery.exec()` and `AggregationPagingQuery.exec()` return `Promise<any>` again. 1.0.14 through 1.0.17 narrowed it to `Promise<unknown>`, which stopped consumers that use the result (for example `res.send(await query.exec())` typed against a response body) from compiling. Runtime behaviour is unchanged.
|
|
356
|
+
|
|
315
357
|
### 1.0.17
|
|
316
358
|
- **Moved mongoose to peerDependencies** - Reduces bundle size for consumers who already have mongoose installed
|
|
317
359
|
- Supports mongoose >= 8.0.0 (tested with 8.16.0 and 9.1.4)
|
|
@@ -19,6 +19,6 @@ export declare class AggregationPagingQuery {
|
|
|
19
19
|
initQuery: () => Promise<void>;
|
|
20
20
|
typeCastObject: <T>(strOrObj: T) => T;
|
|
21
21
|
private removeProtectedFields;
|
|
22
|
-
exec: () => Promise<
|
|
22
|
+
exec: () => Promise<any>;
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=aggregationPagingQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregationPagingQuery.d.ts","sourceRoot":"","sources":["../src/aggregationPagingQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,SAAS,EAKZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAC,qBAAqB,EAAE,iCAAiC,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAQlG,qBAAa,sBAAsB;IAC/B,MAAM,EAAG,iCAAiC,CAYzC;IACD,OAAO,EAAE,qBAAqB,CAM7B;IACD,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,MAAM,EAAE,CAAK;IAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBACL,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,qBAAqB;IAoB/E,kBAAkB,kCAAqB;IACvC,WAAW,sPAAc;IACzB,iBAAiB,6BAAoB;IACrC,YAAY,2BAAe;IAC3B,eAAe,mEAAkB;IACjC,wBAAwB;;MAA2B;IACnD,YAAY,aAOX;IACD,SAAS,sBAsDR;IACD,cAAc,GAAI,CAAC,EAAE,UAAU,CAAC,KAAG,CAAC,CAmCnC;IAED,OAAO,CAAC,qBAAqB,CAS5B;
|
|
1
|
+
{"version":3,"file":"aggregationPagingQuery.d.ts","sourceRoot":"","sources":["../src/aggregationPagingQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,EACL,SAAS,EAKZ,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAC,qBAAqB,EAAE,iCAAiC,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAQlG,qBAAa,sBAAsB;IAC/B,MAAM,EAAG,iCAAiC,CAYzC;IACD,OAAO,EAAE,qBAAqB,CAM7B;IACD,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAA;IACvC,cAAc,EAAE,MAAM,EAAE,CAAK;IAC7B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBACL,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,qBAAqB;IAoB/E,kBAAkB,kCAAqB;IACvC,WAAW,sPAAc;IACzB,iBAAiB,6BAAoB;IACrC,YAAY,2BAAe;IAC3B,eAAe,mEAAkB;IACjC,wBAAwB;;MAA2B;IACnD,YAAY,aAOX;IACD,SAAS,sBAsDR;IACD,cAAc,GAAI,CAAC,EAAE,UAAU,CAAC,KAAG,CAAC,CAmCnC;IAED,OAAO,CAAC,qBAAqB,CAS5B;IAED,IAAI,QAAa,OAAO,CAAC,GAAG,CAAC,CAgC5B;CAEJ"}
|
|
@@ -151,6 +151,7 @@ class AggregationPagingQuery {
|
|
|
151
151
|
this.query.project(projections);
|
|
152
152
|
}
|
|
153
153
|
};
|
|
154
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
154
155
|
this.exec = () => __awaiter(this, void 0, void 0, function* () {
|
|
155
156
|
const { $skip, $limit, $paging, $filter } = this.params;
|
|
156
157
|
const { disablePaging } = this.options;
|
package/dist/package.json
CHANGED
package/dist/pagingQuery.d.ts
CHANGED
|
@@ -10,6 +10,6 @@ export declare class PagingQuery {
|
|
|
10
10
|
private initQuery;
|
|
11
11
|
parseSortString: (sortString: string) => [string, SortOrder][];
|
|
12
12
|
parseParams: (defaultParams: PagingQueryParsedRequestParams | import("./types").AggregateQueryParsedRequestParams, params: import("qs").ParsedQs, isAggregate?: boolean) => PagingQueryParsedRequestParams | import("./types").AggregateQueryParsedRequestParams;
|
|
13
|
-
exec: () => Promise<
|
|
13
|
+
exec: () => Promise<any>;
|
|
14
14
|
}
|
|
15
15
|
//# sourceMappingURL=pagingQuery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pagingQuery.d.ts","sourceRoot":"","sources":["../src/pagingQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,8BAA8B,EAAE,kBAAkB,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAC5F,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAS7D,qBAAa,WAAW;IACpB,MAAM,EAAE,8BAA8B,CASrC;IACD,OAAO,EAAE,kBAAkB,CAAK;IAChC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAO;IACvD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEL,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAY1F,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAqChB;IACD,eAAe,gDAAkB;IACjC,WAAW,sPAAc;
|
|
1
|
+
{"version":3,"file":"pagingQuery.d.ts","sourceRoot":"","sources":["../src/pagingQuery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,8BAA8B,EAAE,kBAAkB,EAAE,WAAW,EAAC,MAAM,SAAS,CAAA;AAC5F,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAC,MAAM,UAAU,CAAC;AAS7D,qBAAa,WAAW;IACpB,MAAM,EAAE,8BAA8B,CASrC;IACD,OAAO,EAAE,kBAAkB,CAAK;IAChC,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,IAAI,CAAO;IACvD,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAA;gBAEL,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAY1F,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,SAAS,CAqChB;IACD,eAAe,gDAAkB;IACjC,WAAW,sPAAc;IAEzB,IAAI,QAAa,OAAO,CAAC,GAAG,CAAC,CAuB5B;CACJ"}
|
package/dist/pagingQuery.js
CHANGED
|
@@ -75,6 +75,7 @@ class PagingQuery {
|
|
|
75
75
|
};
|
|
76
76
|
this.parseSortString = parseSortString_1.parseSortString;
|
|
77
77
|
this.parseParams = parseParams_1.parseParams;
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
78
79
|
this.exec = () => __awaiter(this, void 0, void 0, function* () {
|
|
79
80
|
const { $skip, $limit, $paging, $filter } = this.params;
|
|
80
81
|
const { staticFilter } = this.options;
|