@distilled.cloud/core 1.0.0-rc.1 → 1.0.0-rc.10

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.
Files changed (148) hide show
  1. package/LICENSE +201 -0
  2. package/lib/api.d.ts.map +1 -1
  3. package/lib/api.js +16 -4
  4. package/lib/api.js.map +1 -1
  5. package/lib/category.d.ts +4 -4
  6. package/lib/category.js +4 -4
  7. package/lib/codegen/boolean-string-enums.d.ts +36 -0
  8. package/lib/codegen/boolean-string-enums.d.ts.map +1 -0
  9. package/lib/codegen/boolean-string-enums.js +94 -0
  10. package/lib/codegen/boolean-string-enums.js.map +1 -0
  11. package/lib/codegen/boolean-string-enums.test.d.ts +2 -0
  12. package/lib/codegen/boolean-string-enums.test.d.ts.map +1 -0
  13. package/lib/codegen/boolean-string-enums.test.js +147 -0
  14. package/lib/codegen/boolean-string-enums.test.js.map +1 -0
  15. package/lib/codegen/cli.d.ts +56 -6
  16. package/lib/codegen/cli.d.ts.map +1 -1
  17. package/lib/codegen/cli.js +59 -75
  18. package/lib/codegen/cli.js.map +1 -1
  19. package/lib/codegen/emit.d.ts +3 -7
  20. package/lib/codegen/emit.d.ts.map +1 -1
  21. package/lib/codegen/emit.js +6 -10
  22. package/lib/codegen/emit.js.map +1 -1
  23. package/lib/codegen/generator.d.ts.map +1 -1
  24. package/lib/codegen/generator.js +142 -20
  25. package/lib/codegen/generator.js.map +1 -1
  26. package/lib/codegen/graphql-client.d.ts +62 -0
  27. package/lib/codegen/graphql-client.d.ts.map +1 -0
  28. package/lib/codegen/graphql-client.js +294 -0
  29. package/lib/codegen/graphql-client.js.map +1 -0
  30. package/lib/codegen/graphql-client.test.d.ts +2 -0
  31. package/lib/codegen/graphql-client.test.d.ts.map +1 -0
  32. package/lib/codegen/graphql-client.test.js +311 -0
  33. package/lib/codegen/graphql-client.test.js.map +1 -0
  34. package/lib/codegen/graphql.d.ts +207 -0
  35. package/lib/codegen/graphql.d.ts.map +1 -0
  36. package/lib/codegen/graphql.js +799 -0
  37. package/lib/codegen/graphql.js.map +1 -0
  38. package/lib/codegen/openapi-cli.d.ts +17 -3
  39. package/lib/codegen/openapi-cli.d.ts.map +1 -1
  40. package/lib/codegen/openapi-cli.js +50 -48
  41. package/lib/codegen/openapi-cli.js.map +1 -1
  42. package/lib/codegen/openapi.d.ts +69 -6
  43. package/lib/codegen/openapi.d.ts.map +1 -1
  44. package/lib/codegen/openapi.js +173 -16
  45. package/lib/codegen/openapi.js.map +1 -1
  46. package/lib/codegen/patches.d.ts +65 -0
  47. package/lib/codegen/patches.d.ts.map +1 -0
  48. package/lib/codegen/patches.js +236 -0
  49. package/lib/codegen/patches.js.map +1 -0
  50. package/lib/codegen/patches.test.d.ts +2 -0
  51. package/lib/codegen/patches.test.d.ts.map +1 -0
  52. package/lib/codegen/patches.test.js +105 -0
  53. package/lib/codegen/patches.test.js.map +1 -0
  54. package/lib/codegen/proto.d.ts +121 -0
  55. package/lib/codegen/proto.d.ts.map +1 -0
  56. package/lib/codegen/proto.js +962 -0
  57. package/lib/codegen/proto.js.map +1 -0
  58. package/lib/codegen/rewrite-operation-ids.d.ts +131 -0
  59. package/lib/codegen/rewrite-operation-ids.d.ts.map +1 -0
  60. package/lib/codegen/rewrite-operation-ids.js +1079 -0
  61. package/lib/codegen/rewrite-operation-ids.js.map +1 -0
  62. package/lib/codegen/rewrite-operation-ids.test.d.ts +2 -0
  63. package/lib/codegen/rewrite-operation-ids.test.d.ts.map +1 -0
  64. package/lib/codegen/rewrite-operation-ids.test.js +533 -0
  65. package/lib/codegen/rewrite-operation-ids.test.js.map +1 -0
  66. package/lib/codegen/spec-path.d.ts +16 -0
  67. package/lib/codegen/spec-path.d.ts.map +1 -0
  68. package/lib/codegen/spec-path.js +101 -0
  69. package/lib/codegen/spec-path.js.map +1 -0
  70. package/lib/errors.d.ts.map +1 -1
  71. package/lib/errors.js +17 -13
  72. package/lib/errors.js.map +1 -1
  73. package/lib/graphql.d.ts +284 -0
  74. package/lib/graphql.d.ts.map +1 -0
  75. package/lib/graphql.fixture.d.ts +249 -0
  76. package/lib/graphql.fixture.d.ts.map +1 -0
  77. package/lib/graphql.fixture.js +240 -0
  78. package/lib/graphql.fixture.js.map +1 -0
  79. package/lib/graphql.js +718 -0
  80. package/lib/graphql.js.map +1 -0
  81. package/lib/graphql.test.d.ts +2 -0
  82. package/lib/graphql.test.d.ts.map +1 -0
  83. package/lib/graphql.test.js +780 -0
  84. package/lib/graphql.test.js.map +1 -0
  85. package/lib/graphql.types.d.ts +2 -0
  86. package/lib/graphql.types.d.ts.map +1 -0
  87. package/lib/graphql.types.js +45 -0
  88. package/lib/graphql.types.js.map +1 -0
  89. package/lib/json-patch.d.ts +18 -11
  90. package/lib/json-patch.d.ts.map +1 -1
  91. package/lib/json-patch.js +63 -25
  92. package/lib/json-patch.js.map +1 -1
  93. package/lib/pagination.d.ts +43 -3
  94. package/lib/pagination.d.ts.map +1 -1
  95. package/lib/pagination.js +91 -5
  96. package/lib/pagination.js.map +1 -1
  97. package/lib/protocol-http.d.ts.map +1 -1
  98. package/lib/protocol-http.js +62 -26
  99. package/lib/protocol-http.js.map +1 -1
  100. package/lib/protocol-http.test.d.ts +2 -0
  101. package/lib/protocol-http.test.d.ts.map +1 -0
  102. package/lib/protocol-http.test.js +88 -0
  103. package/lib/protocol-http.test.js.map +1 -0
  104. package/lib/protocol-rest.d.ts +12 -2
  105. package/lib/protocol-rest.d.ts.map +1 -1
  106. package/lib/protocol-rest.js +17 -3
  107. package/lib/protocol-rest.js.map +1 -1
  108. package/lib/retry.js +1 -1
  109. package/lib/schema.d.ts +1 -1
  110. package/lib/schema.d.ts.map +1 -1
  111. package/lib/schema.js +1 -1
  112. package/lib/schema.js.map +1 -1
  113. package/lib/trait.d.ts +27 -3
  114. package/lib/trait.d.ts.map +1 -1
  115. package/lib/trait.js +17 -1
  116. package/lib/trait.js.map +1 -1
  117. package/package.json +13 -10
  118. package/src/api.ts +18 -4
  119. package/src/category.ts +4 -4
  120. package/src/codegen/boolean-string-enums.test.ts +168 -0
  121. package/src/codegen/boolean-string-enums.ts +106 -0
  122. package/src/codegen/cli.ts +127 -110
  123. package/src/codegen/emit.ts +6 -10
  124. package/src/codegen/generator.ts +151 -21
  125. package/src/codegen/graphql-client.test.ts +386 -0
  126. package/src/codegen/graphql-client.ts +419 -0
  127. package/src/codegen/graphql.ts +1217 -0
  128. package/src/codegen/openapi-cli.ts +75 -59
  129. package/src/codegen/openapi.ts +255 -16
  130. package/src/codegen/patches.test.ts +130 -0
  131. package/src/codegen/patches.ts +291 -0
  132. package/src/codegen/proto.ts +1128 -0
  133. package/src/codegen/rewrite-operation-ids.test.ts +563 -0
  134. package/src/codegen/rewrite-operation-ids.ts +1206 -0
  135. package/src/codegen/spec-path.ts +115 -0
  136. package/src/errors.ts +20 -25
  137. package/src/graphql.fixture.ts +371 -0
  138. package/src/graphql.test.ts +974 -0
  139. package/src/graphql.ts +1321 -0
  140. package/src/graphql.types.ts +185 -0
  141. package/src/json-patch.ts +82 -25
  142. package/src/pagination.ts +134 -7
  143. package/src/protocol-http.test.ts +107 -0
  144. package/src/protocol-http.ts +67 -31
  145. package/src/protocol-rest.ts +28 -4
  146. package/src/retry.ts +1 -1
  147. package/src/schema.ts +2 -2
  148. package/src/trait.ts +39 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.test.js","sourceRoot":"","sources":["../src/graphql.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=graphql.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.types.d.ts","sourceRoot":"","sources":["../src/graphql.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,45 @@
1
+ // These assignments exercise user-facing argument and nested selection validation.
2
+ const validSelection = {
3
+ project: {
4
+ where: { id: "p1" },
5
+ select: {
6
+ services: {
7
+ where: { first: 10 },
8
+ select: { edges: { node: { id: true } } },
9
+ },
10
+ },
11
+ },
12
+ };
13
+ const missingArgument = {
14
+ // @ts-expect-error Required GraphQL field arguments cannot be omitted.
15
+ project: { select: { id: true } },
16
+ };
17
+ const wrongArgument = {
18
+ // @ts-expect-error GraphQL argument types follow the schema.
19
+ project: { where: { id: 42 }, select: { id: true } },
20
+ };
21
+ const unknownField = {
22
+ // @ts-expect-error Unknown nested fields cannot be selected.
23
+ project: { where: { id: "p1" }, select: { invented: true } },
24
+ };
25
+ // @ts-expect-error Fields returning objects require a projection.
26
+ const noProjection = { project: true };
27
+ void [
28
+ validSelection,
29
+ missingArgument,
30
+ wrongArgument,
31
+ unknownField,
32
+ noProjection,
33
+ ];
34
+ // @ts-expect-error An object-returning operation always requires a projection.
35
+ inferredClient.operation("query", "project")({ id: "p1" });
36
+ // @ts-expect-error Non-connection object queries do not expose pages.
37
+ inferredClient.operation("query", "project").pages;
38
+ // @ts-expect-error Scalar queries do not expose connection pagination.
39
+ inferredClient.operation("query", "ping").items;
40
+ // @ts-expect-error Mutations cannot be paginated.
41
+ inferredClient.operation("mutation", "editProject").pages;
42
+ const selectivePages = inferredClient
43
+ .operation("query", "services")
44
+ .pages({}, { edges: { node: { id: true } } });
45
+ //# sourceMappingURL=graphql.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql.types.js","sourceRoot":"","sources":["../src/graphql.types.ts"],"names":[],"mappings":"AA6HA,mFAAmF;AACnF,MAAM,cAAc,GAAwC;IAC1D,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;QACnB,MAAM,EAAE;YACN,QAAQ,EAAE;gBACR,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;gBACpB,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;aAC1C;SACF;KACF;CACF,CAAC;AACF,MAAM,eAAe,GAAwC;IAC3D,uEAAuE;IACvE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;CAClC,CAAC;AACF,MAAM,aAAa,GAAwC;IACzD,6DAA6D;IAC7D,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;CACrD,CAAC;AACF,MAAM,YAAY,GAAwC;IACxD,6DAA6D;IAC7D,OAAO,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;CAC7D,CAAC;AACF,kEAAkE;AAClE,MAAM,YAAY,GAAwC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAE5E,KAAK;IACH,cAAc;IACd,eAAe;IACf,aAAa;IACb,YAAY;IACZ,YAAY;CACb,CAAC;AAOF,+EAA+E;AAC/E,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3D,sEAAsE;AACtE,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,KAAK,CAAC;AACnD,uEAAuE;AACvE,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC;AAChD,kDAAkD;AAClD,cAAc,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,KAAK,CAAC;AAE1D,MAAM,cAAc,GAAG,cAAc;KAClC,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC;KAC9B,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * JSON Patch (RFC 6902) Implementation
3
3
  *
4
- * Provides a unified spec patching system for all SDKs. Patches are applied to
5
- * generated intermediary specs (Smithy models, OpenAPI docs, …) before code
6
- * generation to add typed error shapes, rename operations, mark nullable
7
- * fields, etc. Ported from the distilled repo's `core/json-patch`.
4
+ * Provides a unified spec patching system for all SDKs. Patches apply in
5
+ * `convert` so `.generated-specs` is the patched Smithy model. generate does
6
+ * not patch. Prefer `operationNaming: "verbNoun"` for operationId renames —
7
+ * JSON pointers at `/paths/~1foo/operationId` go stale when upstream prefixes
8
+ * paths.
8
9
  *
9
10
  * Pure functions only — callers load patch files themselves (the generators
10
11
  * use Effect's FileSystem) and hand the parsed operations to `applyPatch`.
@@ -23,6 +24,13 @@ export interface PatchFile {
23
24
  /** Parse a JSON Pointer (RFC 6901) path into segments. */
24
25
  export declare function parseJsonPointer(pointer: string): string[];
25
26
  /** Get a value at a JSON Pointer path. */
27
+ /**
28
+ * The target location of a patch operation is absent from the document —
29
+ * spec drift (renamed/removed upstream), not a malformed patch.
30
+ */
31
+ export declare class StaleTargetError extends Error {
32
+ readonly name = "StaleTargetError";
33
+ }
26
34
  export declare function getValueAtPath(obj: unknown, pointer: string): unknown;
27
35
  /** Set a value at a JSON Pointer path. */
28
36
  export declare function setValueAtPath(obj: unknown, pointer: string, value: unknown): void;
@@ -33,12 +41,11 @@ export declare function applyOperation(obj: unknown, operation: JsonPatchOperati
33
41
  /** Apply a JSON Patch to an object (mutates in place). */
34
42
  export declare function applyPatch(obj: unknown, patch: JsonPatch): void;
35
43
  /**
36
- * Whether a per-operation failure is caused by the target location being
37
- * absent from the spec (i.e. spec drift — the operation/shape the patch
38
- * targets was renamed or removed upstream) as opposed to a malformed patch.
39
- * Stale targets should be skipped with a warning rather than aborting the
40
- * whole generate; a patch that only adds an error to an operation that no
41
- * longer exists is harmless to drop.
44
+ * Whether a per-operation failure is a {@link StaleTargetError} (the
45
+ * operation/shape the patch targets was renamed or removed upstream) as
46
+ * opposed to a malformed patch. Accepts the thrown value or its message.
47
+ * Convert fails the run on these by default (`onStalePatch: "fail"`);
48
+ * `"warn"` restores skip-and-continue.
42
49
  */
43
- export declare function isStaleTargetError(message: string): boolean;
50
+ export declare function isStaleTargetError(error: unknown): boolean;
44
51
  //# sourceMappingURL=json-patch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-patch.d.ts","sourceRoot":"","sources":["../src/json-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACpB;AAMD,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAS1D;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAiBrE;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,IAAI,CAoCN;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAgCrE;AAMD,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,kBAAkB,GAC5B,IAAI,CA+CN;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAI/D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAK3D"}
1
+ {"version":3,"file":"json-patch.d.ts","sourceRoot":"","sources":["../src/json-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;AAE7C,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,SAAS,CAAC;CACpB;AAMD,0DAA0D;AAC1D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAS1D;AAED,0CAA0C;AAC1C;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAkB,IAAI,sBAAsB;CAC7C;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAkCrE;AAED,0CAA0C;AAC1C,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,IAAI,CAsCN;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CA+CrE;AAMD,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE,kBAAkB,GAC5B,IAAI,CAoDN;AAED,0DAA0D;AAC1D,wBAAgB,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAI/D;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAe1D"}
package/lib/json-patch.js CHANGED
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * JSON Patch (RFC 6902) Implementation
3
3
  *
4
- * Provides a unified spec patching system for all SDKs. Patches are applied to
5
- * generated intermediary specs (Smithy models, OpenAPI docs, …) before code
6
- * generation to add typed error shapes, rename operations, mark nullable
7
- * fields, etc. Ported from the distilled repo's `core/json-patch`.
4
+ * Provides a unified spec patching system for all SDKs. Patches apply in
5
+ * `convert` so `.generated-specs` is the patched Smithy model. generate does
6
+ * not patch. Prefer `operationNaming: "verbNoun"` for operationId renames —
7
+ * JSON pointers at `/paths/~1foo/operationId` go stale when upstream prefixes
8
+ * paths.
8
9
  *
9
10
  * Pure functions only — callers load patch files themselves (the generators
10
11
  * use Effect's FileSystem) and hand the parsed operations to `applyPatch`.
@@ -25,19 +26,35 @@ export function parseJsonPointer(pointer) {
25
26
  .map((segment) => segment.replace(/~1/g, "/").replace(/~0/g, "~"));
26
27
  }
27
28
  /** Get a value at a JSON Pointer path. */
29
+ /**
30
+ * The target location of a patch operation is absent from the document —
31
+ * spec drift (renamed/removed upstream), not a malformed patch.
32
+ */
33
+ export class StaleTargetError extends Error {
34
+ name = "StaleTargetError";
35
+ }
28
36
  export function getValueAtPath(obj, pointer) {
29
37
  const segments = parseJsonPointer(pointer);
30
38
  let current = obj;
31
39
  for (const segment of segments) {
32
- if (current === null || typeof current !== "object") {
33
- throw new Error(`Cannot traverse path ${pointer}: not an object`);
40
+ if (current === null ||
41
+ current === undefined ||
42
+ typeof current !== "object") {
43
+ throw new StaleTargetError(`JSON pointer ${pointer} missing (at '${segment}'): not an object`);
34
44
  }
35
45
  if (Array.isArray(current)) {
36
46
  const index = segment === "-" ? current.length : parseInt(segment, 10);
47
+ if (index < 0 || index >= current.length) {
48
+ throw new StaleTargetError(`JSON pointer ${pointer} missing index '${segment}'`);
49
+ }
37
50
  current = current[index];
38
51
  }
39
52
  else {
40
- current = current[segment];
53
+ const record = current;
54
+ if (!Object.prototype.hasOwnProperty.call(record, segment)) {
55
+ throw new StaleTargetError(`JSON pointer ${pointer} missing key '${segment}'`);
56
+ }
57
+ current = record[segment];
41
58
  }
42
59
  }
43
60
  return current;
@@ -52,7 +69,7 @@ export function setValueAtPath(obj, pointer, value) {
52
69
  for (let i = 0; i < segments.length - 1; i++) {
53
70
  const segment = segments[i];
54
71
  if (current === null || typeof current !== "object") {
55
- throw new Error(`Cannot traverse path ${pointer}: not an object`);
72
+ throw new StaleTargetError(`Cannot traverse path ${pointer}: not an object`);
56
73
  }
57
74
  if (Array.isArray(current)) {
58
75
  current = current[parseInt(segment, 10)];
@@ -63,7 +80,7 @@ export function setValueAtPath(obj, pointer, value) {
63
80
  }
64
81
  const lastSegment = segments[segments.length - 1];
65
82
  if (current === null || typeof current !== "object") {
66
- throw new Error(`Cannot set value at path ${pointer}: parent is not an object`);
83
+ throw new StaleTargetError(`Cannot set value at path ${pointer}: parent is not an object`);
67
84
  }
68
85
  if (Array.isArray(current)) {
69
86
  if (lastSegment === "-") {
@@ -87,7 +104,7 @@ export function removeValueAtPath(obj, pointer) {
87
104
  for (let i = 0; i < segments.length - 1; i++) {
88
105
  const segment = segments[i];
89
106
  if (current === null || typeof current !== "object") {
90
- throw new Error(`Cannot traverse path ${pointer}: not an object`);
107
+ throw new StaleTargetError(`Cannot traverse path ${pointer}: not an object`);
91
108
  }
92
109
  if (Array.isArray(current)) {
93
110
  current = current[parseInt(segment, 10)];
@@ -98,13 +115,22 @@ export function removeValueAtPath(obj, pointer) {
98
115
  }
99
116
  const lastSegment = segments[segments.length - 1];
100
117
  if (current === null || typeof current !== "object") {
101
- throw new Error(`Cannot remove at path ${pointer}: parent is not an object`);
118
+ throw new StaleTargetError(`Cannot remove at path ${pointer}: parent is not an object`);
102
119
  }
120
+ // RFC 6902 §4.2: the target location MUST exist.
103
121
  if (Array.isArray(current)) {
104
- current.splice(parseInt(lastSegment, 10), 1);
122
+ const index = parseInt(lastSegment, 10);
123
+ if (Number.isNaN(index) || index < 0 || index >= current.length) {
124
+ throw new StaleTargetError(`JSON pointer ${pointer} missing index '${lastSegment}'`);
125
+ }
126
+ current.splice(index, 1);
105
127
  }
106
128
  else {
107
- delete current[lastSegment];
129
+ const record = current;
130
+ if (!Object.prototype.hasOwnProperty.call(record, lastSegment)) {
131
+ throw new StaleTargetError(`JSON pointer ${pointer} missing key '${lastSegment}'`);
132
+ }
133
+ delete record[lastSegment];
108
134
  }
109
135
  }
110
136
  // ============================================================================
@@ -119,17 +145,20 @@ export function applyOperation(obj, operation) {
119
145
  case "remove":
120
146
  removeValueAtPath(obj, operation.path);
121
147
  break;
122
- case "replace":
123
- // For replace, the path must exist
124
- getValueAtPath(obj, operation.path); // throws if doesn't exist
148
+ case "replace": {
149
+ const existing = getValueAtPath(obj, operation.path);
150
+ if (existing === undefined) {
151
+ throw new StaleTargetError(`JSON pointer ${operation.path} does not exist`);
152
+ }
125
153
  setValueAtPath(obj, operation.path, operation.value);
126
154
  break;
155
+ }
127
156
  case "move": {
128
157
  if (!operation.from)
129
158
  throw new Error("move operation requires 'from'");
130
159
  const moveValue = getValueAtPath(obj, operation.from);
131
160
  if (moveValue === undefined) {
132
- throw new Error(`Cannot move from path ${operation.from}: not an object`);
161
+ throw new StaleTargetError(`Cannot move from path ${operation.from}: not an object`);
133
162
  }
134
163
  removeValueAtPath(obj, operation.from);
135
164
  setValueAtPath(obj, operation.path, moveValue);
@@ -160,15 +189,24 @@ export function applyPatch(obj, patch) {
160
189
  }
161
190
  }
162
191
  /**
163
- * Whether a per-operation failure is caused by the target location being
164
- * absent from the spec (i.e. spec drift — the operation/shape the patch
165
- * targets was renamed or removed upstream) as opposed to a malformed patch.
166
- * Stale targets should be skipped with a warning rather than aborting the
167
- * whole generate; a patch that only adds an error to an operation that no
168
- * longer exists is harmless to drop.
192
+ * Whether a per-operation failure is a {@link StaleTargetError} (the
193
+ * operation/shape the patch targets was renamed or removed upstream) as
194
+ * opposed to a malformed patch. Accepts the thrown value or its message.
195
+ * Convert fails the run on these by default (`onStalePatch: "fail"`);
196
+ * `"warn"` restores skip-and-continue.
169
197
  */
170
- export function isStaleTargetError(message) {
198
+ export function isStaleTargetError(error) {
199
+ if (error instanceof StaleTargetError)
200
+ return true;
201
+ const message = typeof error === "string"
202
+ ? error
203
+ : error instanceof Error
204
+ ? error.message
205
+ : "";
171
206
  return (message.includes("not an object") ||
172
- message.includes("parent is not an object"));
207
+ message.includes("parent is not an object") ||
208
+ message.includes("missing key") ||
209
+ message.includes("missing index") ||
210
+ message.includes("does not exist"));
173
211
  }
174
212
  //# sourceMappingURL=json-patch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../src/json-patch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAoBH,+EAA+E;AAC/E,0BAA0B;AAC1B,+EAA+E;AAE/E,0DAA0D;AAC1D,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAC9C,IAAI,OAAO,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO;SACX,KAAK,CAAC,CAAC,CAAC;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;AACvE,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAAC,GAAY,EAAE,OAAe;IAC1D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,iBAAiB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvE,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YACN,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,cAAc,CAC5B,GAAY,EACZ,OAAe,EACf,KAAc;IAEd,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,iBAAiB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IACnD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,4BAA4B,OAAO,2BAA2B,CAC/D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,IAAI,WAAW,KAAK,GAAG,EAAE,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACL,OAAmC,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,6CAA6C;AAC7C,MAAM,UAAU,iBAAiB,CAAC,GAAY,EAAE,OAAe;IAC7D,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,GAAY,GAAG,CAAC;IAE3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YACpD,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,iBAAiB,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,OAAO,GAAI,OAAmC,CAAC,OAAO,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;IACnD,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,yBAAyB,OAAO,2BAA2B,CAC5D,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC;SAAM,CAAC;QACN,OAAQ,OAAmC,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAC5B,GAAY,EACZ,SAA6B;IAE7B,QAAQ,SAAS,CAAC,EAAE,EAAE,CAAC;QACrB,KAAK,KAAK;YACR,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM;QACR,KAAK,QAAQ;YACX,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,SAAS;YACZ,mCAAmC;YACnC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,0BAA0B;YAC/D,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM;QACR,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,yBAAyB,SAAS,CAAC,IAAI,iBAAiB,CACzD,CAAC;YACJ,CAAC;YACD,iBAAiB,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACvC,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAC/C,MAAM;QACR,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,SAAS,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YACvE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACtD,cAAc,CACZ,GAAG,EACH,SAAS,CAAC,IAAI,EACd,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CACtC,CAAC;YACF,MAAM;QACR,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACtD,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClE,MAAM,IAAI,KAAK,CACb,4BAA4B,SAAS,CAAC,IAAI,cAAc,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAC5H,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAuB,SAA4B,CAAC,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;AACH,CAAC;AAED,0DAA0D;AAC1D,MAAM,UAAU,UAAU,CAAC,GAAY,EAAE,KAAgB;IACvD,KAAK,MAAM,SAAS,IAAI,KAAK,EAAE,CAAC;QAC9B,cAAc,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACjC,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,CACL,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC;QACjC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAC5C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"json-patch.js","sourceRoot":"","sources":["../src/json-patch.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@
5
5
  * - Page-based: page/per_page with a page number that advances
6
6
  * - Cursor-based: cursor/limit with an opaque next-cursor string
7
7
  * - Token-based (AWS style): NextToken/MaxResults continuation tokens
8
+ * - Relay (GraphQL connections): after/first with a `pageInfo` block whose
9
+ * `hasNextPage` — not the cursor — marks the end
8
10
  * - Single: one-shot list endpoints that still expose the paginated surface
9
11
  *
10
12
  * Each SDK stores a {@link PaginatedTrait} on its operations (sourced from the
@@ -19,18 +21,42 @@ import * as Stream from "effect/Stream";
19
21
  * `"resultInfo.page"`). Used for pagination traits and nested access.
20
22
  */
21
23
  export declare const getPath: (obj: unknown, path: string) => unknown;
24
+ /**
25
+ * Collect the items a dot-separated path selects, flattening arrays as it
26
+ * goes. Unlike {@link getPath} (which walks a single value and is used for
27
+ * cursors/tokens), every segment here fans out over whatever the previous one
28
+ * produced, so a path may cross a list:
29
+ *
30
+ * - `"items"` on `{ items: [a, b] }` → `[a, b]` (the common flat case)
31
+ * - `"edges.node"` on a Relay connection → every edge's `node`
32
+ *
33
+ * `null`/`undefined` links are dropped rather than propagated, so a partially
34
+ * null page yields the items it does have instead of nothing.
35
+ */
36
+ export declare const getItems: (obj: unknown, path: string) => readonly unknown[];
22
37
  /** Pagination trait describing how to navigate between pages. */
23
38
  export interface PaginatedTrait {
24
39
  /** Pagination strategy */
25
- readonly mode?: "token" | "page" | "cursor" | "single";
40
+ readonly mode?: "token" | "page" | "cursor" | "relay" | "single";
26
41
  /** The name of the input member containing the page/cursor token */
27
42
  readonly inputToken?: string;
28
43
  /** The path to the output member containing the next page/cursor token */
29
44
  readonly outputToken?: string;
30
- /** The path to the output member containing the paginated items */
45
+ /**
46
+ * The path to the output member containing the paginated items. Segments
47
+ * may cross arrays — `"edges.node"` walks every edge and collects its
48
+ * `node` (see {@link getItems}).
49
+ */
31
50
  readonly items?: string;
32
51
  /** The name of the input member that limits page size */
33
52
  readonly pageSize?: string;
53
+ /**
54
+ * Relay extension: the path to the boolean that says whether another page
55
+ * exists (`"pageInfo.hasNextPage"`). Relay connections keep returning the
56
+ * last page's `endCursor` after the end, so the cursor alone can't
57
+ * terminate traversal — see {@link paginateRelay}.
58
+ */
59
+ readonly hasNextPage?: string;
34
60
  }
35
61
  export type PaginationStrategy = <Input extends Record<string, unknown>, Output, E, R>(operation: (input: Input) => Effect.Effect<Output, E, R>, input: Input, pagination: PaginatedTrait) => Stream.Stream<Output, E, R>;
36
62
  /**
@@ -65,6 +91,19 @@ export declare const paginateCursor: <Input extends Record<string, unknown>, Out
65
91
  * `inputToken` until it comes back absent.
66
92
  */
67
93
  export declare const paginateToken: <Input extends Record<string, unknown>, Output, E, R>(operation: (input: Input) => Effect.Effect<Output, E, R>, input: Input, pagination: PaginatedTrait) => Stream.Stream<Output, E, R>;
94
+ /**
95
+ * Stream of pages over a Relay connection — pass `pageInfo.endCursor` back as
96
+ * `after` for as long as `pageInfo.hasNextPage` is true.
97
+ *
98
+ * Relay is cursor pagination with one twist that breaks
99
+ * {@link paginateCursor}: the terminal page still carries an `endCursor` (it
100
+ * points at the last edge, not at "nothing left"). Only `hasNextPage`
101
+ * distinguishes "more to fetch" from "that was everything", so this strategy
102
+ * reads the boolean and treats the cursor as a pure position marker. A
103
+ * connection that omits `pageInfo` entirely (or returns an empty page) also
104
+ * terminates, so a malformed response can't spin forever.
105
+ */
106
+ export declare const paginateRelay: <Input extends Record<string, unknown>, Output, E, R>(operation: (input: Input) => Effect.Effect<Output, E, R>, input: Input, pagination: PaginatedTrait) => Stream.Stream<Output, E, R>;
68
107
  /**
69
108
  * Shared default pagination dispatcher for SDKs that use generic
70
109
  * token/cursor/page traversal.
@@ -74,7 +113,8 @@ export declare const paginateWithDefaults: PaginationStrategy;
74
113
  * Extracts individual items from a page stream.
75
114
  *
76
115
  * @param pages - A stream of page responses
77
- * @param itemsPath - Dot-separated path to the items array in the page
116
+ * @param itemsPath - Dot-separated path to the items in the page; segments may
117
+ * cross arrays (see {@link getItems})
78
118
  * @returns A Stream of individual items
79
119
  */
80
120
  export declare const extractItems: <Output, Item, E, R>(pages: Stream.Stream<Output, E, R>, itemsPath: string) => Stream.Stream<Item, E, R>;
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC;;;GAGG;AACH,eAAO,MAAM,OAAO,QAAS,OAAO,QAAQ,MAAM,KAAG,OAUpD,CAAC;AAMF,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,0BAA0B;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACvD,oEAAoE;IACpE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,MAAM,kBAAkB,GAAG,CAC/B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,EACN,CAAC,EACD,CAAC,EAED,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,EACxD,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,cAAc,KACvB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAIjC;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,UAAW,OAAO,KAAG,OACM,CAAC;AAExD;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,kBAG1B,CAAC;AAMJ;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,EACN,CAAC,EACD,CAAC,aAEU,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SACjD,KAAK,cACA,cAAc,KACzB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAiD5B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,EACN,CAAC,EACD,CAAC,aAEU,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SACjD,KAAK,cACA,cAAc,KACzB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAsC5B,CAAC;AAMF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,MAAM,EACN,CAAC,EACD,CAAC,aAEU,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,SACjD,KAAK,cACA,cAAc,KACzB,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAgC5B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAkBlC,CAAC;AAMF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,SACtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,aACvB,MAAM,KAChB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAMxB,CAAC"}
1
+ {"version":3,"file":"pagination.d.ts","sourceRoot":"","sources":["../src/pagination.ts"],"names":[],"mappings":"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"}
package/lib/pagination.js CHANGED
@@ -5,6 +5,8 @@
5
5
  * - Page-based: page/per_page with a page number that advances
6
6
  * - Cursor-based: cursor/limit with an opaque next-cursor string
7
7
  * - Token-based (AWS style): NextToken/MaxResults continuation tokens
8
+ * - Relay (GraphQL connections): after/first with a `pageInfo` block whose
9
+ * `hasNextPage` — not the cursor — marks the end
8
10
  * - Single: one-shot list endpoints that still expose the paginated surface
9
11
  *
10
12
  * Each SDK stores a {@link PaginatedTrait} on its operations (sourced from the
@@ -29,6 +31,35 @@ export const getPath = (obj, path) => {
29
31
  }
30
32
  return current;
31
33
  };
34
+ /**
35
+ * Collect the items a dot-separated path selects, flattening arrays as it
36
+ * goes. Unlike {@link getPath} (which walks a single value and is used for
37
+ * cursors/tokens), every segment here fans out over whatever the previous one
38
+ * produced, so a path may cross a list:
39
+ *
40
+ * - `"items"` on `{ items: [a, b] }` → `[a, b]` (the common flat case)
41
+ * - `"edges.node"` on a Relay connection → every edge's `node`
42
+ *
43
+ * `null`/`undefined` links are dropped rather than propagated, so a partially
44
+ * null page yields the items it does have instead of nothing.
45
+ */
46
+ export const getItems = (obj, path) => {
47
+ let current = [obj];
48
+ for (const part of path.split(".")) {
49
+ const next = [];
50
+ for (const value of current) {
51
+ if (value == null || typeof value !== "object")
52
+ continue;
53
+ const child = value[part];
54
+ if (Array.isArray(child))
55
+ next.push(...child);
56
+ else if (child != null)
57
+ next.push(child);
58
+ }
59
+ current = next;
60
+ }
61
+ return current;
62
+ };
32
63
  const missingPaginationConfig = (kind) => Stream.die(new Error(kind));
33
64
  /**
34
65
  * Whether a continuation token/cursor returned by a paginated operation
@@ -147,6 +178,61 @@ export const paginateToken = (operation, input, pagination) => {
147
178
  return [response, nextState];
148
179
  }));
149
180
  };
181
+ // ============================================================================
182
+ // Relay Pagination (GraphQL connections)
183
+ // ============================================================================
184
+ /**
185
+ * Stream of pages over a Relay connection — pass `pageInfo.endCursor` back as
186
+ * `after` for as long as `pageInfo.hasNextPage` is true.
187
+ *
188
+ * Relay is cursor pagination with one twist that breaks
189
+ * {@link paginateCursor}: the terminal page still carries an `endCursor` (it
190
+ * points at the last edge, not at "nothing left"). Only `hasNextPage`
191
+ * distinguishes "more to fetch" from "that was everything", so this strategy
192
+ * reads the boolean and treats the cursor as a pure position marker. A
193
+ * connection that omits `pageInfo` entirely (or returns an empty page) also
194
+ * terminates, so a malformed response can't spin forever.
195
+ */
196
+ export const paginateRelay = (operation, input, pagination) => {
197
+ const inputToken = pagination.inputToken;
198
+ const outputToken = pagination.outputToken;
199
+ if (!inputToken || !outputToken) {
200
+ return missingPaginationConfig("Relay pagination requires inputToken and outputToken");
201
+ }
202
+ // `pageInfo.endCursor` → `pageInfo.hasNextPage` when the trait doesn't say.
203
+ const hasNextPath = pagination.hasNextPage ??
204
+ `${outputToken.split(".").slice(0, -1).concat("hasNextPage").join(".")}`;
205
+ const startCursor = typeof input[inputToken] === "string"
206
+ ? input[inputToken]
207
+ : undefined;
208
+ return Stream.unfold({ cursor: startCursor, done: false }, (state) => Effect.gen(function* () {
209
+ if (state.done)
210
+ return undefined;
211
+ const requestPayload = {
212
+ ...input,
213
+ ...(state.cursor ? { [inputToken]: state.cursor } : {}),
214
+ };
215
+ const response = yield* operation(requestPayload);
216
+ const nextCursor = getPath(response, outputToken);
217
+ const hasNext = getPath(response, hasNextPath) === true;
218
+ // An empty page means the connection is exhausted regardless of what
219
+ // `hasNextPage` claims — re-requesting the same cursor would loop.
220
+ const emptyPage = pagination.items !== undefined &&
221
+ getItems(response, pagination.items).length === 0;
222
+ // A connection that keeps returning the same `endCursor` with
223
+ // `hasNextPage: true` (Railway `projects` has done this) would
224
+ // otherwise paginate forever.
225
+ const stuckCursor = state.cursor !== undefined &&
226
+ nextCursor !== undefined &&
227
+ nextCursor !== null &&
228
+ nextCursor === state.cursor;
229
+ const nextState = {
230
+ cursor: nextCursor ?? undefined,
231
+ done: !hasNext || isTerminalToken(nextCursor) || emptyPage || stuckCursor,
232
+ };
233
+ return [response, nextState];
234
+ }));
235
+ };
150
236
  /**
151
237
  * Shared default pagination dispatcher for SDKs that use generic
152
238
  * token/cursor/page traversal.
@@ -158,6 +244,8 @@ export const paginateWithDefaults = (operation, input, pagination) => {
158
244
  return paginatePageNumber(operation, input, pagination);
159
245
  case "cursor":
160
246
  return paginateCursor(operation, input, pagination);
247
+ case "relay":
248
+ return paginateRelay(operation, input, pagination);
161
249
  case "single":
162
250
  return paginateSingle(operation, input, pagination);
163
251
  case "token":
@@ -172,11 +260,9 @@ export const paginateWithDefaults = (operation, input, pagination) => {
172
260
  * Extracts individual items from a page stream.
173
261
  *
174
262
  * @param pages - A stream of page responses
175
- * @param itemsPath - Dot-separated path to the items array in the page
263
+ * @param itemsPath - Dot-separated path to the items in the page; segments may
264
+ * cross arrays (see {@link getItems})
176
265
  * @returns A Stream of individual items
177
266
  */
178
- export const extractItems = (pages, itemsPath) => pages.pipe(Stream.flatMap((page) => {
179
- const items = getPath(page, itemsPath);
180
- return Stream.fromIterable(items ?? []);
181
- }));
267
+ export const extractItems = (pages, itemsPath) => pages.pipe(Stream.flatMap((page) => Stream.fromIterable(getItems(page, itemsPath))));
182
268
  //# sourceMappingURL=pagination.js.map