From 86d0ab3b006709062a7c719b91b358cf9f5eebea Mon Sep 17 00:00:00 2001 From: jiyinyiyong Date: Sun, 13 Sep 2026 14:54:00 +0800 Subject: [PATCH 1/3] chore: align @calcit/procs to 0.14.16 --- package.json | 2 +- yarn.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 24a4221..c1ac466 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "packageManager": "yarn@4.12.0", "version": "0.0.7", "dependencies": { - "@calcit/procs": "0.13.77", + "@calcit/procs": "0.14.16", "cos-nodejs-sdk-v5": "^2.12.4" } } diff --git a/yarn.lock b/yarn.lock index 3c73a08..3994561 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,14 +5,14 @@ __metadata: version: 8 cacheKey: 10c0 -"@calcit/procs@npm:0.13.77": - version: 0.13.77 - resolution: "@calcit/procs@npm:0.13.77" +"@calcit/procs@npm:0.14.16": + version: 0.14.16 + resolution: "@calcit/procs@npm:0.14.16" dependencies: "@calcit/ternary-tree": "npm:0.0.26" "@cirru/parser.ts": "npm:^0.0.9" "@cirru/writer.ts": "npm:^0.1.9" - checksum: 10c0/7f0d79ad9e7963728518c3754174136d7c2e906c7177785d633f622300be11b84a8f9ae659c5b93c9fb8f7d47e4fffba773bbe90a30a0f53fc3d1258ab850851 + checksum: 10c0/627197e5b42d6eb550eab24c2fd83b9cddfdc0cd00b9bd8a462e53f211267d36514fecbe77f722b5d591ca7e2d0c49bbd28f7e0d9cf0652eee202ed8f4f6794e languageName: node linkType: hard @@ -600,7 +600,7 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@calcit/procs": "npm:0.13.77" + "@calcit/procs": "npm:0.14.16" cos-nodejs-sdk-v5: "npm:^2.12.4" languageName: unknown linkType: soft From 9167f9ad4d858aaabc5d5e7d3eff518e4cac4acb Mon Sep 17 00:00:00 2001 From: jiyinyiyong Date: Sun, 13 Sep 2026 14:54:00 +0800 Subject: [PATCH 2/3] chore: reformat snapshot with Calcit 0.14.16 --- calcit.cirru | 173 ++++++++++++++++++++++++++------------------------- deps.cirru | 2 +- 2 files changed, 89 insertions(+), 86 deletions(-) diff --git a/calcit.cirru b/calcit.cirru index 15b1472..3d7bd94 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -1,112 +1,115 @@ -{} (:about "|Machine-generated snapshot. Do not edit directly — changes will be overwritten. Use `calcit query` to inspect and `calcit edit`/`calcit tree` to modify. Run `calcit docs agents --full` first. Manual edits must follow format and schema conventions, then run `calcit edit format`.") (:package |app) - :entries $ {} - :default $ {} (:description |) (:init-fn 'app.main/main!) (:mode :js) (:reload-fn 'app.main/reload!) +{} + :about "|Machine-generated snapshot. Do not edit directly — changes will be overwritten. Use `calcit query` to inspect and `calcit edit`/`calcit tree` to modify. Run `calcit docs agents --contract` before mutations; use `--full` for first orientation or changed contract digest. Manual edits must follow format and schema conventions, then run `calcit edit format`." + :package |app + :entries $ {} $ :default + {} (:description |) (:init-fn 'app.main/main!) (:mode :js) + :reload-fn 'app.main/reload! :feature-policy $ {} :modules $ [] |skir/ |lilac/ :type-slots $ {} :files $ {} 'app.http $ %{} 'FileEntry - :defs $ {} - 'extract-body $ %{} 'CodeEntry (:doc |) - :code $ quote - defn extract-body (req cb) - let - *buf $ atom | - .!on req |data $ fn (d) (swap! *buf str d) - .!on req |end $ fn () - cb $ parse-cirru-edn (deref *buf) + :defs $ {} $ 'extract-body + %{} 'CodeEntry (:doc |) + :code $ quote $ defn extract-body (req cb) + let + *buf $ atom | + .!on req |data $ fn (d) (swap! *buf str d) + .!on req |end $ fn () $ cb + parse-cirru-edn $ deref *buf :examples $ [] :schema $ :: 'Dynamic :ns $ %{} 'NsEntry (:doc |) - :code $ quote (ns app.http) + :code $ quote $ ns app.http 'app.main $ %{} 'FileEntry :defs $ {} 'handle-token $ %{} 'CodeEntry (:doc |) - :code $ quote - defn handle-token (bucket app-id secret file-key cb) - &let - cos-obj $ new COS - js-object (:SecretId app-id) (:SecretKey secret) - w-js-log $ .!getObjectUrl cos-obj - js-object (:Bucket bucket) (:Region |ap-shanghai) - :Key $ str |cos-up/ (or file-key |demo0) - :Method |PUT - :Sign true - fn (err data) (js/console.log "|COS DATA:" err data) - if (some? err) - cb $ {} (:code 400) - :body $ {} - :message $ str err - cb $ {} (:code 200) - :headers $ {} (|Access-Control-Allow-Origin |*) - :body $ {} - :url $ .-Url data + :code $ quote $ defn handle-token (bucket app-id secret file-key cb) + &let + cos-obj $ new COS $ js-object (:SecretId app-id) (:SecretKey secret) + w-js-log $ .!getObjectUrl cos-obj + js-object (:Bucket bucket) (:Region |ap-shanghai) + :Key $ str |cos-up/ $ or file-key |demo0 + :Method |PUT + :Sign true + fn (err data) (js/console.log "|COS DATA:" err data) + if (some? err) + cb $ {} (:code 400) + :body $ {} $ :message (str err) + cb $ {} (:code 200) + :headers $ {} $ |Access-Control-Allow-Origin |* + :body $ {} $ :url (.-Url data) :examples $ [] :schema $ :: 'Dynamic 'main! $ %{} 'CodeEntry (:doc |) - :code $ quote - defn main! () - println "|COS get" $ .-getAuthorization COS - skir/create-server! on-request! $ {} - :port $ js/parseInt - option:unwrap-or (get-env |PORT) |4000 + :code $ quote $ defn main! () + println "|COS get" $ .-getAuthorization COS + skir/create-server! on-request! $ {} $ :port + js/parseInt $ option:unwrap-or (get-env |PORT) |4000 :examples $ [] :schema $ :: 'Dynamic 'on-request! $ %{} 'CodeEntry (:doc |) - :code $ quote - defn on-request! (req-data res) - let - request $ unsafe-coerce req-data Map - method $ option:unwrap-or (get request :method) :get - request-path $ option:unwrap-or (get request :path) | - println $ format-cirru-edn - -> request (dissoc :original-request) (dissoc :headers) - if - and (= :post method) (= |/token request-path) - let - secrets $ unsafe-coerce - parse-cirru-edn $ fs/readFileSync - path/join (fileURLToPath js/import.meta.url) |../../secrets.cirru - , |utf8 - , Map - original-request $ option:unwrap-or (get request :original-request) nil - fn (cb) - extract-body original-request $ fn (body) - let - payload $ unsafe-coerce body Map - user $ option:unwrap-or (get payload :user) | - pass $ option:unwrap-or (get payload :pass) | - expected-user $ option:unwrap-or (get secrets :user) | - expected-pass $ option:unwrap-or (get secrets :pass-md5) | - println |BODY payload - if - and (= user expected-user) (= pass expected-pass) - handle-token - option:unwrap-or (get secrets :bucket) | - option:unwrap-or (get secrets :app-id) | - option:unwrap-or (get secrets :secret) | - option:unwrap-or (get payload :file-key) | - , cb - cb $ {} (:code 403) (:message "|Not user") - :headers $ {} - :body $ {} (:message "|not open for all users...") - if (= :options method) - {} (:code 200) (:message |OK) - :headers $ {} (|Access-Control-Allow-Origin |*) - {} (:code 404) (:message "|Non hit") - :headers $ {} - :body $ {} (:message "|only token is impelemented") + :code $ quote $ defn on-request! (req-data res) + let + request $ unsafe-coerce req-data Map + method $ option:unwrap-or (get request :method) :get + request-path $ option:unwrap-or (get request :path) | + println $ format-cirru-edn $ -> request + dissoc :original-request + dissoc :headers + if + and (= :post method) (= |/token request-path) + let + secrets $ unsafe-coerce + parse-cirru-edn $ fs/readFileSync + path/join + fileURLToPath js/import.meta.url + , |../../secrets.cirru + , |utf8 + , Map + original-request $ option:unwrap-or + get request :original-request + , nil + fn (cb) + extract-body original-request $ fn (body) + let + payload $ unsafe-coerce body Map + user $ option:unwrap-or (get payload :user) | + pass $ option:unwrap-or (get payload :pass) | + expected-user $ option:unwrap-or (get secrets :user) | + expected-pass $ option:unwrap-or (get secrets :pass-md5) | + println |BODY payload + if + and (= user expected-user) (= pass expected-pass) + handle-token + option:unwrap-or (get secrets :bucket) | + option:unwrap-or (get secrets :app-id) | + option:unwrap-or (get secrets :secret) | + option:unwrap-or (get payload :file-key) | + , cb + cb $ {} (:code 403) (:message "|Not user") + :headers $ {} + :body $ {} $ :message "|not open for all users..." + if (= :options method) + {} (:code 200) (:message |OK) + :headers $ {} $ |Access-Control-Allow-Origin |* + {} (:code 404) (:message "|Non hit") + :headers $ {} + :body $ {} $ :message "|only token is impelemented" :examples $ [] :schema $ :: 'Dynamic 'reload! $ %{} 'CodeEntry (:doc |) - :code $ quote - defn reload! () (skir/reset-req-handler! on-request!) (println |Reloaded.) + :code $ quote $ defn reload! () + skir/reset-req-handler! on-request! + println |Reloaded. :examples $ [] :schema $ :: 'Dynamic :ns $ %{} 'NsEntry (:doc |) - :code $ quote - ns app.main $ :require (|cos-nodejs-sdk-v5 :default COS) (skir.core :as skir) + :code $ quote $ ns app.main + :require + |cos-nodejs-sdk-v5 :default COS + skir.core :as skir app.$meta :refer $ calcit-dirname |node:path :as path |node:url :refer $ fileURLToPath diff --git a/deps.cirru b/deps.cirru index 5335830..db7b5f6 100644 --- a/deps.cirru +++ b/deps.cirru @@ -1,5 +1,5 @@ -{} (:calcit-version |0.13.77) (:version |0.0.7) +{} (:calcit-version |0.14.16) (:version |0.0.7) :dependencies $ {} |calcit-lang/skir |0.0.23 |calcit-lang/lilac |0.5.9 From 7ae07e07fe5df93617e71589c7f6594ea5bc6e2a Mon Sep 17 00:00:00 2001 From: tiye Date: Tue, 15 Sep 2026 12:57:36 +0800 Subject: [PATCH 3/3] fix: complete Calcit 0.14.17 strict migration --- calcit.cirru | 107 ++++++++++++++++++++++++------------ config/calcit-quality.cirru | 48 +++++----------- deps.cirru | 4 +- package.json | 2 +- yarn.lock | 10 ++-- 5 files changed, 94 insertions(+), 77 deletions(-) diff --git a/calcit.cirru b/calcit.cirru index 3d7bd94..348b036 100644 --- a/calcit.cirru +++ b/calcit.cirru @@ -3,74 +3,109 @@ :about "|Machine-generated snapshot. Do not edit directly — changes will be overwritten. Use `calcit query` to inspect and `calcit edit`/`calcit tree` to modify. Run `calcit docs agents --contract` before mutations; use `--full` for first orientation or changed contract digest. Manual edits must follow format and schema conventions, then run `calcit edit format`." :package |app :entries $ {} $ :default - {} (:description |) (:init-fn 'app.main/main!) (:mode :js) - :reload-fn 'app.main/reload! + {} (:description |) (:init-fn 'app.main/main!) (:mode :js) (:reload-fn 'app.main/reload!) :feature-policy $ {} :modules $ [] |skir/ |lilac/ :type-slots $ {} :files $ {} 'app.http $ %{} 'FileEntry - :defs $ {} $ 'extract-body - %{} 'CodeEntry (:doc |) + :defs $ {} + 'IncomingRequestHost $ %{} 'CodeEntry (:doc |) + :code $ quote $ deftrait IncomingRequestHost + .on! $ :: 'Fn $ {} + :args $ [] 'app.http/IncomingRequestHost 'String 'Dynamic + :return 'app.http/IncomingRequestHost + :examples $ [] + :ffi $ {} (:backend :js) (:kind :external-object) (:target :node) + :names $ {} $ :on! |on + :schema $ :: 'Trait + 'extract-body $ %{} 'CodeEntry (:doc |) :code $ quote $ defn extract-body (req cb) let *buf $ atom | - .!on req |data $ fn (d) (swap! *buf str d) - .!on req |end $ fn () $ cb + req .on! |data $ fn (d) (swap! *buf str d) + req .on! |end $ fn () $ cb parse-cirru-edn $ deref *buf + , &unit :examples $ [] - :schema $ :: 'Dynamic + :schema $ :: 'Fn $ {} (:return 'Unit) + :args $ [] 'app.http/IncomingRequestHost $ :: 'Fn + {} (:return 'Unit) + :args $ [] 'Dynamic + :features $ #{} :js-ffi :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.http 'app.main $ %{} 'FileEntry :defs $ {} + 'CosClientHost $ %{} 'CodeEntry (:doc |) + :code $ quote $ deftrait CosClientHost + .get-object-url! $ :: 'Fn $ {} + :args $ [] 'app.main/CosClientHost 'JsObject $ :: 'Fn + {} + :args $ [] 'Dynamic 'Dynamic + :return 'Unit + :return 'Dynamic + :examples $ [] + :ffi $ {} (:backend :js) (:kind :external-object) (:target :node) + :names $ {} $ :get-object-url! |getObjectUrl + :schema $ :: 'Trait + 'CosDataHost $ %{} 'CodeEntry (:doc |) + :code $ quote $ deftrait CosDataHost (:url 'String) + :examples $ [] + :ffi $ {} (:backend :js) (:kind :external-object) (:target :node) + :names $ {} $ :url |Url + :schema $ :: 'Trait 'handle-token $ %{} 'CodeEntry (:doc |) :code $ quote $ defn handle-token (bucket app-id secret file-key cb) - &let - cos-obj $ new COS $ js-object (:SecretId app-id) (:SecretKey secret) - w-js-log $ .!getObjectUrl cos-obj + let + cos-obj $ unsafe-coerce + new COS $ js-object (:SecretId app-id) (:SecretKey secret) + , app.main/CosClientHost + w-js-log $ cos-obj .get-object-url! js-object (:Bucket bucket) (:Region |ap-shanghai) :Key $ str |cos-up/ $ or file-key |demo0 :Method |PUT :Sign true - fn (err data) (js/console.log "|COS DATA:" err data) + fn (err data) (js/console.log |COS_DATA: err data) if (some? err) cb $ {} (:code 400) :body $ {} $ :message (str err) - cb $ {} (:code 200) - :headers $ {} $ |Access-Control-Allow-Origin |* - :body $ {} $ :url (.-Url data) + let + cos-data $ unsafe-coerce data app.main/CosDataHost + cb $ {} (:code 200) + :headers $ {} $ |Access-Control-Allow-Origin |* + :body $ {} $ :url (.-url cos-data) :examples $ [] - :schema $ :: 'Dynamic + :schema $ :: 'Fn $ {} (:return 'Unit) + :args $ [] 'String 'String 'String 'String $ :: 'Fn + {} (:return 'Unit) + :args $ [] 'Dynamic + :features $ #{} :js-ffi 'main! $ %{} 'CodeEntry (:doc |) :code $ quote $ defn main! () - println "|COS get" $ .-getAuthorization COS - skir/create-server! on-request! $ {} $ :port - js/parseInt $ option:unwrap-or (get-env |PORT) |4000 + skir/create-server! on-request! $ %some $ {} + :port $ js/parseInt $ option:unwrap-or (get-env |PORT) |4000 + , &unit :examples $ [] - :schema $ :: 'Dynamic + :schema $ :: 'Fn $ {} (:return 'Unit) + :args $ [] + :features $ #{} :js-ffi 'on-request! $ %{} 'CodeEntry (:doc |) :code $ quote $ defn on-request! (req-data res) let request $ unsafe-coerce req-data Map method $ option:unwrap-or (get request :method) :get request-path $ option:unwrap-or (get request :path) | - println $ format-cirru-edn $ -> request - dissoc :original-request - dissoc :headers + println $ format-cirru-edn $ -> request (dissoc :original-request) (dissoc :headers) if and (= :post method) (= |/token request-path) let secrets $ unsafe-coerce parse-cirru-edn $ fs/readFileSync - path/join - fileURLToPath js/import.meta.url - , |../../secrets.cirru + path/join (fileURLToPath js/import.meta.url) |../../secrets.cirru , |utf8 , Map - original-request $ option:unwrap-or - get request :original-request - , nil + original-request $ option:unwrap-or (get request :original-request) nil fn (cb) extract-body original-request $ fn (body) let @@ -98,18 +133,18 @@ :headers $ {} :body $ {} $ :message "|only token is impelemented" :examples $ [] - :schema $ :: 'Dynamic + :schema $ :: 'Fn $ {} (:return 'Dynamic) + :args $ [] 'skir.schema/Request 'Dynamic + :features $ #{} :js-ffi 'reload! $ %{} 'CodeEntry (:doc |) - :code $ quote $ defn reload! () - skir/reset-req-handler! on-request! - println |Reloaded. + :code $ quote $ defn reload! () (skir/reset-req-handler! on-request!) (println |Reloaded.) :examples $ [] - :schema $ :: 'Dynamic + :schema $ :: 'Fn $ {} (:return 'Unit) + :args $ [] + :features $ #{} :js-ffi :ns $ %{} 'NsEntry (:doc |) :code $ quote $ ns app.main - :require - |cos-nodejs-sdk-v5 :default COS - skir.core :as skir + :require (|cos-nodejs-sdk-v5 :default COS) (skir.core :as skir) app.$meta :refer $ calcit-dirname |node:path :as path |node:url :refer $ fileURLToPath diff --git a/config/calcit-quality.cirru b/config/calcit-quality.cirru index 527e076..1aa84e3 100644 --- a/config/calcit-quality.cirru +++ b/config/calcit-quality.cirru @@ -4,56 +4,38 @@ :codeNil 0 :declaredOptional 0 :deprecatedCalls 0 - :schemaDynamic 1 - :typeNone 1 + :schemaDynamic 0 + :typeNone 0 :typeNotFull 1 - :unresolved 1 + :unresolved 0 :unsafeCoerce 0 |app.main/handle-token $ {} (:codeDynamic 0) :codeNil 0 :declaredOptional 0 :deprecatedCalls 0 - :schemaDynamic 1 - :typeNone 1 - :typeNotFull 1 - :unresolved 1 - :unsafeCoerce 0 - |app.main/main! $ {} (:codeDynamic 0) - :codeNil 0 - :declaredOptional 0 - :deprecatedCalls 0 - :schemaDynamic 1 - :typeNone 1 + :schemaDynamic 0 + :typeNone 0 :typeNotFull 1 - :unresolved 1 - :unsafeCoerce 0 + :unresolved 0 + :unsafeCoerce 2 |app.main/on-request! $ {} (:codeDynamic 0) :codeNil 1 :declaredOptional 0 :deprecatedCalls 0 - :schemaDynamic 1 - :typeNone 1 - :typeNotFull 1 - :unresolved 2 - :unsafeCoerce 3 - |app.main/reload! $ {} (:codeDynamic 0) - :codeNil 0 - :declaredOptional 0 - :deprecatedCalls 0 - :schemaDynamic 1 - :typeNone 1 + :schemaDynamic 0 + :typeNone 0 :typeNotFull 1 :unresolved 1 - :unsafeCoerce 0 + :unsafeCoerce 3 :metrics $ {} (:codeDynamic 0) :codeNil 1 :declaredOptional 0 :deprecatedCalls 0 - :schemaDynamic 5 - :typeNone 5 - :typeNotFull 5 - :unresolved 6 - :unsafeCoerce 3 + :schemaDynamic 0 + :typeNone 0 + :typeNotFull 3 + :unresolved 1 + :unsafeCoerce 5 :scope $ {} (:includeDependencies false) :namespace nil :namespacePrefix nil diff --git a/deps.cirru b/deps.cirru index db7b5f6..71d07e0 100644 --- a/deps.cirru +++ b/deps.cirru @@ -1,5 +1,5 @@ -{} (:calcit-version |0.14.16) (:version |0.0.7) +{} (:calcit-version |0.14.17) (:version |0.0.7) :dependencies $ {} - |calcit-lang/skir |0.0.23 + |calcit-lang/skir |0.0.24 |calcit-lang/lilac |0.5.9 diff --git a/package.json b/package.json index c1ac466..04bc224 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "packageManager": "yarn@4.12.0", "version": "0.0.7", "dependencies": { - "@calcit/procs": "0.14.16", + "@calcit/procs": "0.14.17", "cos-nodejs-sdk-v5": "^2.12.4" } } diff --git a/yarn.lock b/yarn.lock index 3994561..9ed4ff0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,14 +5,14 @@ __metadata: version: 8 cacheKey: 10c0 -"@calcit/procs@npm:0.14.16": - version: 0.14.16 - resolution: "@calcit/procs@npm:0.14.16" +"@calcit/procs@npm:0.14.17": + version: 0.14.17 + resolution: "@calcit/procs@npm:0.14.17" dependencies: "@calcit/ternary-tree": "npm:0.0.26" "@cirru/parser.ts": "npm:^0.0.9" "@cirru/writer.ts": "npm:^0.1.9" - checksum: 10c0/627197e5b42d6eb550eab24c2fd83b9cddfdc0cd00b9bd8a462e53f211267d36514fecbe77f722b5d591ca7e2d0c49bbd28f7e0d9cf0652eee202ed8f4f6794e + checksum: 10c0/91b236157b56eb3c9478796d31e2bb96f3668ec57dddb2875162c4a069f5b8ee769b8dd9146f3f34d71812393e72cff0c47022e59e605fffecbeca2b0787b8da languageName: node linkType: hard @@ -600,7 +600,7 @@ __metadata: version: 0.0.0-use.local resolution: "root-workspace-0b6124@workspace:." dependencies: - "@calcit/procs": "npm:0.14.16" + "@calcit/procs": "npm:0.14.17" cos-nodejs-sdk-v5: "npm:^2.12.4" languageName: unknown linkType: soft