@aotter/mantle 0.2.0-alpha.4 → 0.2.0-alpha.6

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 (181) hide show
  1. package/README.md +2 -2
  2. package/dist/admin/createAdminSurface.d.ts +3 -0
  3. package/dist/admin/createAdminSurface.d.ts.map +1 -1
  4. package/dist/admin/createAdminSurface.js +51 -8
  5. package/dist/admin/createAdminSurface.js.map +1 -1
  6. package/dist/admin/extensions.d.ts +290 -0
  7. package/dist/admin/extensions.d.ts.map +1 -0
  8. package/dist/admin/extensions.js +532 -0
  9. package/dist/admin/extensions.js.map +1 -0
  10. package/dist/admin/index.d.ts +1 -0
  11. package/dist/admin/index.d.ts.map +1 -1
  12. package/dist/admin/index.js +1 -0
  13. package/dist/admin/index.js.map +1 -1
  14. package/dist/auth/buildAuth.d.ts +3 -1
  15. package/dist/auth/buildAuth.d.ts.map +1 -1
  16. package/dist/auth/buildAuth.js +3 -2
  17. package/dist/auth/buildAuth.js.map +1 -1
  18. package/dist/auth/callerResolver.d.ts +4 -0
  19. package/dist/auth/callerResolver.d.ts.map +1 -1
  20. package/dist/auth/callerResolver.js +4 -1
  21. package/dist/auth/callerResolver.js.map +1 -1
  22. package/dist/auth/createMantleAuth.d.ts.map +1 -1
  23. package/dist/auth/createMantleAuth.js +3 -2
  24. package/dist/auth/createMantleAuth.js.map +1 -1
  25. package/dist/auth/db.d.ts +1 -0
  26. package/dist/auth/db.d.ts.map +1 -1
  27. package/dist/auth/db.js +6 -3
  28. package/dist/auth/db.js.map +1 -1
  29. package/dist/bun/index.d.ts +0 -44
  30. package/dist/bun/index.d.ts.map +1 -1
  31. package/dist/bun/index.js +0 -84
  32. package/dist/bun/index.js.map +1 -1
  33. package/dist/cli/generate.js +3 -3
  34. package/dist/cli/generate.js.map +1 -1
  35. package/dist/cli/preset.d.ts.map +1 -1
  36. package/dist/cli/preset.js +80 -28
  37. package/dist/cli/preset.js.map +1 -1
  38. package/dist/cloudflare/index.d.ts +4 -0
  39. package/dist/cloudflare/index.d.ts.map +1 -1
  40. package/dist/cloudflare/index.js +2 -0
  41. package/dist/cloudflare/index.js.map +1 -1
  42. package/dist/core/dialect.d.ts +13 -1
  43. package/dist/core/dialect.d.ts.map +1 -1
  44. package/dist/core/driver.d.ts +7 -0
  45. package/dist/core/driver.d.ts.map +1 -1
  46. package/dist/core/runtime/createRuntime.js +1 -1
  47. package/dist/core/runtime/createRuntime.js.map +1 -1
  48. package/dist/core/sessionUser.d.ts +14 -0
  49. package/dist/core/sessionUser.d.ts.map +1 -0
  50. package/dist/core/sessionUser.js +4 -0
  51. package/dist/core/sessionUser.js.map +1 -0
  52. package/dist/core/sql/allowlist.d.ts +2 -0
  53. package/dist/core/sql/allowlist.d.ts.map +1 -1
  54. package/dist/core/sql/allowlist.js +43 -11
  55. package/dist/core/sql/allowlist.js.map +1 -1
  56. package/dist/core/sql/ast.js +1 -1
  57. package/dist/core/sql/ast.js.map +1 -1
  58. package/dist/core/sql/compile.js +1 -1
  59. package/dist/core/sql/compile.js.map +1 -1
  60. package/dist/core/sql/policy.d.ts +2 -0
  61. package/dist/core/sql/policy.d.ts.map +1 -1
  62. package/dist/core/sql/policy.js +25 -6
  63. package/dist/core/sql/policy.js.map +1 -1
  64. package/dist/core/sql/run.d.ts +0 -8
  65. package/dist/core/sql/run.d.ts.map +1 -1
  66. package/dist/core/sql/run.js +152 -35
  67. package/dist/core/sql/run.js.map +1 -1
  68. package/dist/d1/executor.d.ts +2 -0
  69. package/dist/d1/executor.d.ts.map +1 -1
  70. package/dist/d1/executor.js +6 -1
  71. package/dist/d1/executor.js.map +1 -1
  72. package/dist/mcp/createMcpSurface.d.ts +5 -2
  73. package/dist/mcp/createMcpSurface.d.ts.map +1 -1
  74. package/dist/mcp/createMcpSurface.js +14 -3
  75. package/dist/mcp/createMcpSurface.js.map +1 -1
  76. package/dist/mcp/media.d.ts +9 -0
  77. package/dist/mcp/media.d.ts.map +1 -0
  78. package/dist/mcp/media.js +33 -0
  79. package/dist/mcp/media.js.map +1 -0
  80. package/dist/postgres/adapter.d.ts +5 -2
  81. package/dist/postgres/adapter.d.ts.map +1 -1
  82. package/dist/postgres/adapter.js +7 -1
  83. package/dist/postgres/adapter.js.map +1 -1
  84. package/dist/postgres/compile/index.d.ts +1 -1
  85. package/dist/postgres/compile/index.js +1 -1
  86. package/dist/postgres/driver.d.ts +38 -21
  87. package/dist/postgres/driver.d.ts.map +1 -1
  88. package/dist/postgres/driver.js +100 -24
  89. package/dist/postgres/driver.js.map +1 -1
  90. package/dist/postgres/executor.d.ts +8 -0
  91. package/dist/postgres/executor.d.ts.map +1 -1
  92. package/dist/postgres/executor.js +40 -13
  93. package/dist/postgres/executor.js.map +1 -1
  94. package/dist/postgres/index.d.ts +2 -1
  95. package/dist/postgres/index.d.ts.map +1 -1
  96. package/dist/postgres/index.js +1 -0
  97. package/dist/postgres/index.js.map +1 -1
  98. package/dist/postgres/lower.d.ts.map +1 -1
  99. package/dist/postgres/lower.js +3 -8
  100. package/dist/postgres/lower.js.map +1 -1
  101. package/dist/postgres/print.d.ts.map +1 -1
  102. package/dist/postgres/print.js +2 -15
  103. package/dist/postgres/print.js.map +1 -1
  104. package/dist/postgres/session.d.ts +9 -0
  105. package/dist/postgres/session.d.ts.map +1 -0
  106. package/dist/postgres/session.js +111 -0
  107. package/dist/postgres/session.js.map +1 -0
  108. package/dist/postgres/storage.d.ts +14 -1
  109. package/dist/postgres/storage.d.ts.map +1 -1
  110. package/dist/postgres/storage.js +136 -54
  111. package/dist/postgres/storage.js.map +1 -1
  112. package/dist/postgres/validator.d.ts +4 -3
  113. package/dist/postgres/validator.d.ts.map +1 -1
  114. package/dist/postgres/validator.js +13 -6
  115. package/dist/postgres/validator.js.map +1 -1
  116. package/dist/spec/domain/model/ManifestGrammar.d.ts +4 -0
  117. package/dist/spec/domain/model/ManifestGrammar.d.ts.map +1 -1
  118. package/dist/spec/domain/model/ManifestGrammar.js +4 -0
  119. package/dist/spec/domain/model/ManifestGrammar.js.map +1 -1
  120. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts +2 -0
  121. package/dist/spec/domain/service/SchemaAdminUiChecker.d.ts.map +1 -1
  122. package/dist/spec/domain/service/SchemaAdminUiChecker.js +50 -6
  123. package/dist/spec/domain/service/SchemaAdminUiChecker.js.map +1 -1
  124. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts +1 -1
  125. package/dist/spec/domain/service/ViewAdminUiChecker.d.ts.map +1 -1
  126. package/dist/spec/domain/service/ViewAdminUiChecker.js +7 -2
  127. package/dist/spec/domain/service/ViewAdminUiChecker.js.map +1 -1
  128. package/dist/spec/infrastructure/sql/compilePlan.d.ts.map +1 -1
  129. package/dist/spec/infrastructure/sql/compilePlan.js +5 -0
  130. package/dist/spec/infrastructure/sql/compilePlan.js.map +1 -1
  131. package/dist/spec/kernel/diagnostic.d.ts +1 -1
  132. package/dist/spec/kernel/diagnostic.d.ts.map +1 -1
  133. package/dist/spec/kernel/diagnostic.js +5 -0
  134. package/dist/spec/kernel/diagnostic.js.map +1 -1
  135. package/dist/testing/cases/corpus.d.ts +2 -0
  136. package/dist/testing/cases/corpus.d.ts.map +1 -1
  137. package/dist/testing/cases/corpus.js +7 -5
  138. package/dist/testing/cases/corpus.js.map +1 -1
  139. package/dist/testing/cases/policy.d.ts +14 -1
  140. package/dist/testing/cases/policy.d.ts.map +1 -1
  141. package/dist/testing/cases/policy.js +3 -2
  142. package/dist/testing/cases/policy.js.map +1 -1
  143. package/dist/testing/cases/printer.d.ts.map +1 -1
  144. package/dist/testing/cases/printer.js +3 -1
  145. package/dist/testing/cases/printer.js.map +1 -1
  146. package/dist/testing/cases/report-view.d.ts.map +1 -1
  147. package/dist/testing/cases/report-view.js +18 -0
  148. package/dist/testing/cases/report-view.js.map +1 -1
  149. package/docs/adr/0031-host-cloud-core-contract.md +62 -1
  150. package/docs/adr/0032-store-centric-core-and-service-contract.md +17 -0
  151. package/docs/adr/0037-postgresql-is-the-reference-dialect.md +2 -1
  152. package/docs/adr/0039-postgresql-is-native.md +130 -0
  153. package/docs/adr/README.md +2 -0
  154. package/docs/adr/adr-lite-1376-admin-extensions.md +330 -0
  155. package/docs/examples/commerce-inventory.md +18 -1
  156. package/docs/examples/reference-service/package.json +2 -2
  157. package/docs/handbook/cloudflare/authentication.md +3 -3
  158. package/docs/handbook/cloudflare/deploy-and-operate.md +4 -1
  159. package/docs/handbook/cloudflare/media-r2.md +59 -8
  160. package/docs/handbook/concepts/mcp-and-agents.md +12 -4
  161. package/docs/handbook/concepts/runtime-and-adapters.md +74 -33
  162. package/docs/handbook/concepts/views.md +1 -1
  163. package/docs/handbook/guides/admin-extensions.md +191 -0
  164. package/docs/handbook/guides/admin-ui.md +2 -1
  165. package/docs/handbook/navigation.json +2 -1
  166. package/docs/handbook/reference/diagnostics.md +1 -0
  167. package/docs/handbook/reference/procedure.md +2 -1
  168. package/docs/handbook/reference/schema.md +6 -3
  169. package/docs/handbook/reference/surface.md +6 -2
  170. package/docs/handbook/reference/view.md +7 -5
  171. package/docs/handbook/releases/index.md +78 -4
  172. package/docs/handbook/start/project-and-cli.md +20 -12
  173. package/docs/skills/develop/SKILL.md +8 -2
  174. package/docs/skills/provision/SKILL.md +4 -1
  175. package/docs/skills/update/SKILL.md +3 -0
  176. package/docs/upgrade-0.1-to-0.2.md +1 -1
  177. package/package.json +6 -5
  178. package/dist/postgres/textRows.d.ts +0 -10
  179. package/dist/postgres/textRows.d.ts.map +0 -1
  180. package/dist/postgres/textRows.js +0 -44
  181. package/dist/postgres/textRows.js.map +0 -1
@@ -0,0 +1,4 @@
1
+ const byCaller = new WeakMap();
2
+ export const rememberSessionUser = (caller, user) => (byCaller.set(caller, user), caller);
3
+ export const sessionUserOf = (caller) => byCaller.get(caller);
4
+ //# sourceMappingURL=sessionUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionUser.js","sourceRoot":"","sources":["../../src/core/sessionUser.ts"],"names":[],"mappings":"AAaA,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAuB,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAc,EAAE,IAAiB,EAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AACvH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAA2B,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC"}
@@ -37,6 +37,8 @@ export interface Profile {
37
37
  readonly trunc: ReadonlySet<string>;
38
38
  readonly extract: ReadonlySet<string>;
39
39
  readonly casts: ReadonlySet<string>;
40
+ /** the functions allowed in FROM, and only there: a row source with a column per value */
41
+ readonly fromFuncs: ReadonlySet<string>;
40
42
  }
41
43
  /** frame bits a window may not set: GROUPS and every EXCLUDE (PostgreSQL's FRAMEOPTION_* in parsenodes.h) */
42
44
  export declare const FRAME_REFUSED: number;
@@ -1 +1 @@
1
- {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/core/sql/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAqB,OAAO,IAAI,CAAC,EAAE,OAAO,EAAgB,MAAM,kCAAkC,CAAC;AASzJ,yCAAyC;AACzC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAc3C,CAAC;AACF,eAAO,MAAM,IAAI;;CAA2G,CAAC;AA4B7H,iHAAiH;AACjH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAiR,CAAC;AAE1T,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAW9D,CAAC;AAIF,mFAAmF;AACnF,eAAO,MAAM,KAAK,aAOhB,CAAC;AAKH,eAAO,MAAM,WAAW,aAAoD,CAAC;AAC7E,eAAO,MAAM,cAAc,aAAmD,CAAC;AAE/E,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,gDAAgD;AAChD,eAAO,MAAM,SAAS,OAAO,CAAC;AAG9B,iIAAiI;AACjI,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC;AAgBD,6GAA6G;AAC7G,eAAO,MAAM,aAAa,QAAmC,CAAC;AAW9D,eAAO,MAAM,QAAQ;;;CAAgE,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,aAE/B,CAAC;AAEH,eAAO,MAAM,MAAM,aAA0E,CAAC;AAgC9F,iIAAiI;AACjI,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,GAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAO,EAAE,OAAO,GAAE,OAAsB,GAAG,IAAI,CAE3J;AA0BD,4HAA4H;AAC5H,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,CAY3E;AA8XD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,OAAsB,GAAG,SAAS,aAAa,EAAE,CAWpH"}
1
+ {"version":3,"file":"allowlist.d.ts","sourceRoot":"","sources":["../../../src/core/sql/allowlist.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAqB,OAAO,IAAI,CAAC,EAAE,OAAO,EAAgB,MAAM,kCAAkC,CAAC;AASzJ,yCAAyC;AACzC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAc3C,CAAC;AACF,eAAO,MAAM,IAAI;;CAA2G,CAAC;AA4B7H,iHAAiH;AACjH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAiR,CAAC;AAE1T,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAW9D,CAAC;AAIF,mFAAmF;AACnF,eAAO,MAAM,KAAK,aAOhB,CAAC;AAKH,eAAO,MAAM,WAAW,aAAoD,CAAC;AAC7E,eAAO,MAAM,cAAc,aAAmD,CAAC;AAE/E,eAAO,MAAM,YAAY,QAAS,CAAC;AACnC,eAAO,MAAM,UAAU,MAAM,CAAC;AAC9B,gDAAgD;AAChD,eAAO,MAAM,SAAS,OAAO,CAAC;AAG9B,iIAAiI;AACjI,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACzC;AAgBD,6GAA6G;AAC7G,eAAO,MAAM,aAAa,QAAmC,CAAC;AAa9D,eAAO,MAAM,QAAQ;;;CAAgE,CAAC;AAEtF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,aAE/B,CAAC;AAEH,eAAO,MAAM,MAAM,aAA0E,CAAC;AAgC9F,iIAAiI;AACjI,wBAAgB,eAAe,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,UAAU,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,GAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAO,EAAE,OAAO,GAAE,OAAsB,GAAG,IAAI,CAE3J;AA0BD,4HAA4H;AAC5H,wBAAgB,aAAa,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,GAAG,aAAa,CAY3E;AAwZD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,GAAE,OAAsB,GAAG,SAAS,aAAa,EAAE,CAWpH"}
@@ -37,7 +37,7 @@ const SLOTS_SRC = {
37
37
  'FuncCall.funcname': 'String', 'FuncCall.args': EXPR, 'FuncCall.agg_filter': EXPR, 'FuncCall.agg_order': 'SortBy',
38
38
  'WindowDef.partitionClause': EXPR, 'WindowDef.orderClause': 'SortBy', 'WindowDef.startOffset': EXPR, 'WindowDef.endOffset': EXPR,
39
39
  'SubLink.testexpr': EXPR, 'SubLink.subselect': 'SelectStmt', 'SubLink.operName': 'String', 'SortBy.node': EXPR,
40
- 'RangeSubselect.subquery': 'SelectStmt', 'RangeFunction.functions': 'List', 'RangeFunction>List.items': 'FuncCall',
40
+ 'RangeSubselect.subquery': 'SelectStmt', 'RangeFunction.functions': 'List', 'RangeFunction>List.items': 'FuncCall', 'Alias.colnames': 'String',
41
41
  'JoinExpr.larg': FROM, 'JoinExpr.rarg': FROM, 'JoinExpr.quals': EXPR,
42
42
  'OnConflictClause.targetList': 'ResTarget', 'OnConflictClause.whereClause': EXPR, 'InferClause.indexElems': 'IndexElem',
43
43
  'WithClause.ctes': 'CommonTableExpr', 'CommonTableExpr.ctequery': 'SelectStmt', 'CommonTableExpr.aliascolnames': 'String', 'MinMaxExpr.args': EXPR,
@@ -78,11 +78,11 @@ export const MAX_RADIUS_M = 50_000;
78
78
  export const MAX_NEAR_K = 100;
79
79
  /** The most nodes one program's IR may have. */
80
80
  export const MAX_NODES = 2000;
81
- const BASE_PROFILE = { name: 'base', keys: KEYS, enums: ENUM, ops: OPS, funcs: FUNCS, window: WINDOW, agg: AGG, trunc: TRUNC_UNITS, extract: EXTRACT_FIELDS, casts: CAST_TYPES };
81
+ const BASE_PROFILE = { name: 'base', keys: KEYS, enums: ENUM, ops: OPS, funcs: FUNCS, window: WINDOW, agg: AGG, trunc: TRUNC_UNITS, extract: EXTRACT_FIELDS, casts: CAST_TYPES, fromFuncs: new Set(['json_each']) };
82
82
  // ---- ADR-0037 decision 2: the reference profile's additions --------------------------------------------------------------
83
83
  const MORE_KEYS = {
84
84
  SelectStmt: 'withClause larg rarg all', WithClause: 'ctes recursive', CommonTableExpr: 'ctename ctequery aliascolnames ctematerialized',
85
- RangeSubselect: 'lateral', FuncCall: 'agg_filter agg_order', WindowDef: 'startOffset endOffset', MinMaxExpr: 'op args',
85
+ RangeSubselect: 'lateral', RangeFunction: 'ordinality', Alias: 'colnames', FuncCall: 'agg_filter agg_order', WindowDef: 'startOffset endOffset', MinMaxExpr: 'op args',
86
86
  };
87
87
  const MORE_ENUM = {
88
88
  'SelectStmt.op': ['SETOP_UNION', 'SETOP_INTERSECT', 'SETOP_EXCEPT'], 'A_Expr.kind': ['AEXPR_ILIKE'],
@@ -103,6 +103,8 @@ const REFERENCE_PROFILE = {
103
103
  ops: union(OPS, MORE_OPS), funcs: union(FUNCS, MORE_FUNCS), window: union(WINDOW, MORE_WINDOW), agg: union(AGG, MORE_AGG),
104
104
  trunc: union(TRUNC_UNITS, ['minute', 'quarter']), extract: union(EXTRACT_FIELDS, ['minute', 'quarter', 'week', 'isoyear', 'isodow', 'doy', 'epoch']),
105
105
  casts: union(CAST_TYPES, ['jsonb']),
106
+ // PostgreSQL's own row sources over jsonb (ADR-0039): `jsonb_array_elements_text(t.tags) WITH ORDINALITY AS j(value, n)`; SQLite's json_each is not among them
107
+ fromFuncs: new Set(['jsonb_array_elements', 'jsonb_array_elements_text', 'jsonb_each', 'jsonb_each_text']),
106
108
  };
107
109
  export const PROFILES = { base: BASE_PROFILE, reference: REFERENCE_PROFILE };
108
110
  /**
@@ -149,7 +151,7 @@ function program(stmts, ctx, locs) {
149
151
  no('SQL_SHAPE', 'an empty program');
150
152
  if (ctx.kind === 'view' && (stmts.length !== 1 || !stmts[0].SelectStmt))
151
153
  no('SQL_SHAPE', 'a View is exactly one SELECT', locs[1]);
152
- ctx = { ...ctx, known: knownColumns(stmts), cols: ctx.columns ?? schemaColumns(ctx.schemas) };
154
+ ctx = { ...ctx, known: knownColumns(stmts), fnCols: rowSourceColumns(stmts), cols: ctx.columns ?? schemaColumns(ctx.schemas) };
153
155
  const w = { ctx, budget: { n: 0 } };
154
156
  stmts.forEach((s, i) => {
155
157
  const t = Object.keys(s)[0] ?? '';
@@ -190,6 +192,16 @@ export function schemaColumns(schemas) {
190
192
  }
191
193
  return { known, scopes, types: new Map([...types].filter((e) => e[1] !== null)) };
192
194
  }
195
+ /** A function row source's column list by its alias: `jsonb_each_text(x) AS j(key, value)` is j -> {key, value}. Only a function's alias may rename columns. */
196
+ function rowSourceColumns(stmts) {
197
+ const out = new Map();
198
+ for (const r of find(stmts, 'RangeFunction')) {
199
+ const a = r.alias;
200
+ if (a?.colnames?.length)
201
+ out.set(String(a.aliasname).toLowerCase(), new Set(a.colnames.map((c) => String(c.String?.sval).toLowerCase())));
202
+ }
203
+ return out;
204
+ }
193
205
  /**
194
206
  * Every name a column may have beyond the declared fields (`SchemaColumns.known`, a geo field also as _lat and _lng): `id`, the
195
207
  * system columns, json_each's, relation names and aliases, and every output name the program gives (ORDER BY and outer queries
@@ -202,6 +214,8 @@ function knownColumns(stmts) {
202
214
  known.add(String(r.name).toLowerCase());
203
215
  for (const r of find(stmts, 'RangeVar'))
204
216
  [r.relname, r.alias?.aliasname].forEach((a) => a && known.add(a.toLowerCase())); // mantle.search(<alias>, ...) names a relation
217
+ for (const cols of rowSourceColumns(stmts).values())
218
+ cols.forEach((c) => known.add(c)); // `j(value, n)` names a row source's columns
205
219
  for (const c of find(stmts, 'CommonTableExpr'))
206
220
  [c.ctename, ...(c.aliascolnames ?? []).map((x) => x.String?.sval)].forEach((a) => a && known.add(String(a).toLowerCase()));
207
221
  return known;
@@ -366,6 +380,8 @@ const isConst = (n) => !!n?.A_Const;
366
380
  const isInputRef = (n) => n?.ColumnRef?.fields?.length === 2 && n.ColumnRef.fields[0].String?.sval === 'input';
367
381
  const check = {
368
382
  RangeVar: (n, ctx, _p, at) => {
383
+ if (n.alias?.colnames)
384
+ no('SQL_SHAPE', `a column list after ${n.alias.aliasname} is only for a row source: Schema columns keep their names`, at);
369
385
  // the parser folds an unquoted name and the CLI writes only lower case: an `ARTICLES` would be one Schema to the checks and
370
386
  // another to what keys hooks and publishing by the folded name, so a relation (a Schema or a CTE reference) is lower case
371
387
  if (typeof n.relname !== 'string' || n.relname !== n.relname.toLowerCase())
@@ -403,14 +419,17 @@ const check = {
403
419
  no('SQL_COLUMN', `${f} is not a declared input`, at);
404
420
  if (ctx.p.name === 'base' && SQLITE_ONLY_KEYWORDS.has(last))
405
421
  no('SQL_UNSUPPORTED', `${last} is an SQLite keyword: the printer would not quote it`, at);
422
+ const own = n.fields.length === 2 ? ctx.fnCols.get(String(n.fields[0].String?.sval).toLowerCase()) : undefined;
423
+ if (own && last !== '*' && !own.has(last))
424
+ no('SQL_COLUMN', `${f}: the row source ${n.fields[0].String.sval} names its columns (${[...own].join(', ')})`, at);
406
425
  if (last !== '*' && !f.startsWith('input.') && !ctx.known.has(last) && !ctx.cols.known.has(last))
407
426
  no('SQL_COLUMN', `${f} is not a declared field`, at);
408
427
  },
409
428
  FuncCall: (n, ctx, path, at) => {
410
429
  const f = fname(n);
411
- if (f === 'json_each') {
430
+ if (ctx.p.fromFuncs.has(f)) {
412
431
  if (path.at(-2) !== 'List' || path.at(-3) !== 'RangeFunction')
413
- no('SQL_FUNCTION', 'json_each is only allowed in FROM', at);
432
+ no('SQL_FUNCTION', `${f} is only allowed in FROM`, at);
414
433
  return;
415
434
  }
416
435
  if (!ctx.p.funcs.has(f))
@@ -546,14 +565,18 @@ const check = {
546
565
  if (!n.quals)
547
566
  no('SQL_SHAPE', 'a JOIN needs ON', at, /\bCROSS\s+JOIN\b|\bJOIN\b/i);
548
567
  },
549
- RangeFunction: (n, _c, _p, at) => {
568
+ RangeFunction: (n, ctx, _p, at) => {
550
569
  const fs = n.functions;
551
- if (fs.length !== 1 || fs[0]?.List?.items?.length !== 2 || sv(fs[0].List.items[0].FuncCall?.funcname ?? []) !== 'json_each')
552
- no('SQL_FUNCTION', 'only json_each() is allowed in FROM', at);
570
+ const only = `only ${[...ctx.p.fromFuncs].map((x) => `${x}()`).join(', ')} ${ctx.p.fromFuncs.size > 1 ? 'are' : 'is'} allowed in FROM`;
571
+ const f = fs.length === 1 && fs[0]?.List?.items?.length === 2 ? sv(fs[0].List.items[0].FuncCall?.funcname ?? []) : undefined;
572
+ if (!f || !ctx.p.fromFuncs.has(f))
573
+ no('SQL_FUNCTION', only, at);
553
574
  if (fs[0].List.items[0].FuncCall.args?.length !== 1)
554
- no('SQL_FUNCTION', 'json_each takes one argument', at);
575
+ no('SQL_FUNCTION', `${f} takes one argument`, at);
555
576
  },
556
577
  RangeSubselect: (n, _c, _p, at) => {
578
+ if (n.alias?.colnames)
579
+ no('SQL_SHAPE', `a column list after ${n.alias.aliasname} is only for a row source: name the columns in the subquery`, at);
557
580
  if (!n.alias)
558
581
  no('SQL_SHAPE', 'a subquery in FROM needs an alias', at);
559
582
  },
@@ -594,7 +617,16 @@ const check = {
594
617
  if (n.valuesLists && (path.at(-2) !== 'InsertStmt' || n.valuesLists.length !== 1))
595
618
  no('SQL_SHAPE', 'VALUES is one row, in INSERT only', firstLoc(n.valuesLists) ?? at);
596
619
  if ((n.fromClause ?? []).slice(1).some((f) => !f.RangeFunction && !(reference && f.RangeSubselect?.lateral)))
597
- no('SQL_SHAPE', reference ? 'a comma join is refused (except json_each and LATERAL)' : 'a comma join is refused (except json_each)', at);
620
+ no('SQL_SHAPE', reference ? 'a comma join is refused (except a row source over a column, and LATERAL)' : 'a comma join is refused (except json_each)', at);
621
+ // Core keys a paged row source by its ordinality (policy.ts), so one without an alias and WITH ORDINALITY would lose rows between pages
622
+ if (reference && n.sortClause && !n.groupClause) {
623
+ const rows = (f) => (f?.JoinExpr ? [...rows(f.JoinExpr.larg), ...rows(f.JoinExpr.rarg)] : f ? [f] : []);
624
+ for (const r of (n.fromClause ?? []).flatMap(rows)) {
625
+ const fc = r.RangeFunction?.functions?.[0]?.List?.items?.[0]?.FuncCall;
626
+ if (fc && (!r.RangeFunction.alias || !r.RangeFunction.ordinality))
627
+ no('SQL_SHAPE', `ordering a row source (${sv(fc.funcname)}) needs an alias and WITH ORDINALITY: write ${sv(fc.funcname)}(...) WITH ORDINALITY AS j(value, n)`, fc.location ?? at);
628
+ }
629
+ }
598
630
  // mantle.near()/mantle.distance(): a query ordered by mantle.distance() needs a LIMIT of at most MAX_NEAR_K
599
631
  const byDistance = JSON.stringify(n.sortClause ?? []).includes('"distance"');
600
632
  if (byDistance) {
@@ -1 +1 @@
1
- {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../../src/core/sql/allowlist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"allowlist.js","sourceRoot":"","sources":["../../../src/core/sql/allowlist.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ export const target = (val, name) => ({ ResTarget: name ? { name, val } : { val
8
8
  /** A relation as the CLI tags it: a Schema `table`, or `system` for Core's own (never reachable from author IR). */
9
9
  export const table = (relname, mantle = "table") => ({ relname, inh: true, relpersistence: "p", mantle });
10
10
  /** Nodes that print as one unit on both engines; anything else is an expression a printer must parenthesize as an operand. */
11
- const ATOMIC = new Set(["ColumnRef", "A_Const", "ParamRef", "FuncCall", "TypeCast", "CaseExpr", "CoalesceExpr", "MinMaxExpr", "Raw"]);
11
+ const ATOMIC = new Set(["ColumnRef", "A_Const", "ParamRef", "FuncCall", "TypeCast", "CaseExpr", "CoalesceExpr", "MinMaxExpr", "RowExpr", "Raw"]);
12
12
  const atomic = (x) => !x || typeof x !== "object" || Object.keys(x).some((k) => ATOMIC.has(k)) ||
13
13
  (x.SubLink && ["EXPR_SUBLINK", "ARRAY_SUBLINK"].includes(x.SubLink.subLinkType));
14
14
  /** `x` in parentheses: the printers' `Raw` prints its parts inside `( )`. */
@@ -1 +1 @@
1
- {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/core/sql/ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/core/sql/ast.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ export function compileProgram(stmts, ctx) {
18
18
  const diagnostics = ctx.dialect.check({ grammar: PG_GRAMMAR, stmts }, { schemas: ctx.schemas, ...(ctx.columns ? { columns: ctx.columns } : {}), inputs: ctx.inputs, kind: ctx.kind, public: ctx.mode === "public" });
19
19
  if (diagnostics.length)
20
20
  throw new DiagnosticError(diagnostics.map((d) => runtimeDiagnostic({ code: "INPUT_VALIDATION_FAILED", severity: "error", path: "store", message: `${d.code}: ${d.message}` })));
21
- const opts = { schemas: ctx.schemas, inputs: ctx.inputs, mode: ctx.mode, lockVersion: ctx.lockVersion, returning: ctx.returning, seen: ctx.seen, unsafeNoVisibility: ctx.unsafeNoVisibility, lower: ctx.dialect.lowering };
21
+ const opts = { schemas: ctx.schemas, inputs: ctx.inputs, mode: ctx.mode, lockVersion: ctx.lockVersion, returning: ctx.returning, seen: ctx.seen, unsafeNoVisibility: ctx.unsafeNoVisibility, lower: ctx.dialect.lowering, nativeOrder: ctx.dialect.nativeOrder };
22
22
  return stmts.map((stmt, i) => {
23
23
  const c = applyPolicy(stmt, { ...opts, status: ctx.statuses?.[i] });
24
24
  // a Schema whose published entries are protected takes row ops only (ADR-0032 decision 2, ADR-0034 decision 4)
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/core/sql/compile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../../src/core/sql/compile.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ export type BindSpec = {
33
33
  export declare const HOOK_PREFIX = "_mantle_h_";
34
34
  export type Mode = 'caller' | 'public' | 'trusted';
35
35
  export type PolicyOpts = {
36
+ /** `MantleDialect.nativeOrder`: the id tiebreak follows the last sort key's direction */
37
+ nativeOrder?: boolean;
36
38
  schemas: Schemas;
37
39
  inputs: Record<string, string>;
38
40
  mode?: Mode;
@@ -1 +1 @@
1
- {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/core/sql/policy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/core/sql/policy.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ const and = (...args) => {
15
15
  const or = (...a) => ({ BoolExpr: { boolop: 'OR_EXPR', args: a } });
16
16
  const bump = () => res(op('+', col('version'), num(1)), 'version');
17
17
  const touch = (c) => res(param$(c, { k: 'now' }), 'updated_at');
18
- const sort = (node) => ({ SortBy: { node, sortby_dir: 'SORTBY_DEFAULT', sortby_nulls: 'SORTBY_NULLS_DEFAULT' } });
18
+ const sort = (node, dir = 'SORTBY_DEFAULT') => ({ SortBy: { node, sortby_dir: dir, sortby_nulls: 'SORTBY_NULLS_DEFAULT' } });
19
19
  // ---- Schema helpers -------------------------------------------------------------------------------
20
20
  // the scope column is never read back, not even by `SELECT *`: it is the caller's own subject key
21
21
  const declaredCols = (s) => Object.entries(s.fields).filter(([f]) => f !== s.scope).flatMap(([f, t]) => (t === 'geo' ? [`${f}_lat`, `${f}_lng`] : [f]));
@@ -245,9 +245,11 @@ function selectIn(n, c) {
245
245
  const firstAlias = first?.RangeVar ? (first.RangeVar.alias?.aliasname ?? first.RangeVar.relname) : first?.RangeSubselect?.alias?.aliasname;
246
246
  const aggregate = !n.groupClause && hasFunc(n.targetList, (f, fc) => AGGREGATES.has(f) && !fc.over);
247
247
  if (out.sortClause && !aggregate) {
248
+ // on a native-order dialect the tiebreak runs the way the last key does, so one index scan (forward or backward) serves the whole ORDER BY
249
+ const dir = c.nativeOrder && out.sortClause.at(-1)?.SortBy.sortby_dir === 'SORTBY_DESC' ? 'SORTBY_DESC' : 'SORTBY_DEFAULT';
248
250
  const have = new Set(out.sortClause.map((k) => JSON.stringify(k.SortBy.node)));
249
251
  if (n.groupClause)
250
- out.sortClause = [...out.sortClause, ...tx(n.groupClause, c).filter((g) => !have.has(JSON.stringify(g))).map(sort)];
252
+ out.sortClause = [...out.sortClause, ...tx(n.groupClause, c).filter((g) => !have.has(JSON.stringify(g))).map((g) => sort(g, dir))];
251
253
  else if (firstAlias) {
252
254
  if (first.RangeSubselect && !outputsOf(first.RangeSubselect.subquery.SelectStmt).includes('id'))
253
255
  throw new Refused('SQL_SHAPE', `ordering ${firstAlias}, a subquery in FROM, needs the subquery to output id`);
@@ -255,10 +257,27 @@ function selectIn(n, c) {
255
257
  if (cte && !cteOutputs(cte).includes('id'))
256
258
  throw new Refused('SQL_SHAPE', `ordering ${firstAlias}, a CTE, needs the CTE to output id`);
257
259
  const extra = [col(firstAlias, 'id')];
258
- const je = (n.fromClause ?? []).find((f) => f.RangeFunction);
259
- if (je?.RangeFunction.alias)
260
- extra.push(col(je.RangeFunction.alias.aliasname, 'id'));
261
- out.sortClause = [...out.sortClause, ...extra.filter((e) => !have.has(JSON.stringify(e))).map(sort)];
260
+ // ponytail: a row source FIRST in FROM (no table before it) and a fan-out subquery ordered by s.id are not keyed by this; the upgrade is a per-source key like this one
261
+ for (const f of n.fromClause ?? [])
262
+ for (const r of relsOf(f)) {
263
+ const je = r.RangeFunction;
264
+ if (!je)
265
+ continue;
266
+ const fname = je.functions[0]?.List?.items?.[0]?.FuncCall?.funcname?.at(-1)?.String?.sval;
267
+ // json_each's own `id` orders its elements; PostgreSQL's row sources have none, so a paged one is keyed by its ordinality
268
+ if (fname === 'json_each') {
269
+ if (je.alias)
270
+ extra.push(col(je.alias.aliasname, 'id'));
271
+ continue;
272
+ }
273
+ if (!je.alias || !je.ordinality)
274
+ throw new Refused('SQL_SHAPE', `ordering a row source (${fname}) needs an alias and WITH ORDINALITY: write ${fname}(...) WITH ORDINALITY AS j(value, n)`);
275
+ // the ordinality column is named by the list's extra entry after the function's own columns (one, or two for jsonb_each*), else `ordinality`
276
+ const own = String(fname).startsWith('jsonb_each') ? 2 : 1;
277
+ const names = je.alias.colnames ?? [];
278
+ extra.push(col(je.alias.aliasname, names.length > own ? names.at(-1).String.sval : 'ordinality'));
279
+ }
280
+ out.sortClause = [...out.sortClause, ...extra.filter((e) => !have.has(JSON.stringify(e))).map((e) => sort(e, dir))];
262
281
  }
263
282
  }
264
283
  // ADR-0034 says every window's ORDER BY gets the id key. The spike found that wrong for anything but